私はSpring RESTバックエンドと角度フロントエンドを持っています。クライアント側のREST認証後にユーザー情報を取得する方法は?
認証は、要求JSON本体内のユーザー名とパスワードを使用してURLを「/ login」するPOST要求を使用して実行されます(私はフォームベースの認証を使用します)。 RESTバックエンドがOKコードで応答します。すべてが問題なく、フロントエンドから認証が必要な他のリクエストを実行できます。
しかし、フロントエンドは、認証されたユーザーの役割が何であるかを知っている必要があり、そのために適切なビュー/ロットを表示できる必要があります。フロントエンドでこの役割をどこから得ることができますか?私たちが認証から得た唯一の応答はOKでしたが、これはRESTにとっては問題ありません。
「/ users/[user_id]」にGETリクエストを行うことで、ユーザー情報を取得できます。しかし、私たちはユーザーIDを持っていません。ユーザー名だけです。
質問: - フロントエンドからユーザー名だけを持つRESTがロール(または他のユーザー情報)を取得する正しい方法は何ですか?
回避策として、IDの代わりにユーザー名を使用するバックエンドで新しい要求を作成することも、認証応答にユーザーIDを追加することもできます。しかし、それがRESTの観点から正しい方法であるかどうかは分かりません。
バックエンドで現在のユーザー情報を取得するためにユーザーIDを渡す必要があるが、ユーザーIDを取得できない場合、バックエンドには深刻な設計上の問題があります。認証が必要なリクエストを送信できるようです。これは、バックエンドがあなたの人物を識別できることを意味します(おそらくクッキーのおかげで)。そうであれば、クッキーに暗黙的に渡されるので、パラメータとして何も渡す必要はありません。/current-userリソースだけを持つことができます。 –
バックエンドとフロントエンドの両方が開発中です。バックエンドがRESTに続いてユーザー情報を提供する正しい方法は何ですか? –
私はちょうどあなたに言った。バックエンドが暗黙的に(例えばクッキーを使って)リクエストを識別する方法を持っていると仮定すると、/ current-user、または/ meまたはそれに名前を付ける任意のリソースを提供することができます。たとえば、https://developer.github.com/v3/users/#get-the-authenticated-userを参照してください。 –