我有Spring REST後端和Angular前端。如何在客戶端進行REST驗證後獲取用戶信息?
身份驗證是使用POST請求在請求JSON正文(我使用基於表單的身份驗證)內使用帶有用戶名和密碼的「/ login」URL執行的。 REST後端以OK代碼回覆。一切都很好,我可以從前端執行需要驗證的其他請求。
但前端需要知道經過身份驗證的用戶的角色,以便它可以顯示適當的視圖/死機。我們在哪裏可以在前端獲得這個角色?我們從身份驗證中得到的唯一回應是OK,對於REST來說很好。
我們可以通過對「/ users/[user_id]」執行GET請求來獲取用戶信息。但是我們沒有用戶名,只有用戶名。
所以問題是 - 什麼是REST從只有用戶名的前端獲取角色(或其他用戶信息)的正確方法?
作爲一種解決方法,我可以在後端使用用戶名而不是id創建新請求,或者我可以將用戶標識添加到認證響應。但我不確定從REST的角度來看這是一種正確的方式。
如果您的後端需要傳遞用戶標識以獲取當前用戶信息,但不允許獲取用戶標識,那麼後端具有嚴重的設計問題。您似乎可以發送需要驗證的請求。這意味着後端能夠識別你是誰(可能要歸功於cookie)。如果這是真的,你不需要傳遞任何東西作爲參數,因爲它隱式地傳遞到cookie中。您可以擁有/當前用戶資源。 –
後端和前端都由我開發。後端在REST之後提供用戶信息的正確方法是什麼? –
我剛剛告訴過你。假設後端有一個確定請求的隱式方式(例如使用cookie),您可以提供/ current-user或/我或任何想要命名它的資源。例如,請參閱https://developer.github.com/v3/users/#get-the-authenticated-user。 –