たとえば、ユーザーがログインしている場合、ユーザーがフォーラムのトピックを作成したいとします。ユーザーがすでにログインしていることをどのようにして知ることができますか?
考えてみてください-この現在のリクエストは認証されたユーザーからのものであることを「Create Forum」APIに伝えるハンドシェイクが必要です。REST APIは通常ステートレスであるため、状態はどこかに永続化する必要があります。REST APIを使用するクライアントは、その状態を維持する責任があります。通常、これは、ユーザーがログインしたときからパススルーされるトークンの形式です。トークンが適切であれば、リクエストは適切です。
Amazon AWSが認証を行う方法を確認します。これは、あるAPIから別のAPIへの「引き渡し」の完璧な例です。
*以前の回答に実際的な対応を追加することを考えました。Apache Shiro(または任意の認証/承認ライブラリ)を試してください。結論として、カスタムコーディングは避けてください。お気に入りのライブラリを統合したら(私はApache Shiroを使用しています)、次のことができます。
- 以下のようなログイン/ログアウトAPIを作成します
/api/v1/login
と、api/v1/logout
- これらのログインおよびログアウトAPIで、ユーザーストアを使用して認証を実行します。
- 結果は
JSESSIONID
、クライアント(Web、モバイルなど)に送り返されるトークン(通常は)です。
- この時点以降、クライアントが行う以降のすべての呼び出しには、このトークンが含まれます
- 次の呼び出しが呼び出されたAPIに対して行われたとしましょう
/api/v1/findUser
- このAPIコードが最初に行うことは、トークンを確認することです(「このユーザーは認証されていますか?」)
- 答えがNOとして返される場合は、HTTP 401ステータスをクライアントにスローします。彼らに任せてください。
- 答えが「はい」の場合、要求されたユーザーを返すために続行します
それで全部です。お役に立てれば。