Amazon Cognito でログアウトエンドポイントと GlobalSignOut API を使用する方法を理解したいと考えています。
簡単な説明
Amazon Cognito のログアウトエンドポイントは、ブラウザからユーザーセッションをクリアします。GlobalSignOut API は、特定のユーザーに発行されたすべてのアクセスおよび更新トークンを無効にします。
解決方法
ログアウトエンドポイントを使用してユーザーをログアウトする
ホストされたエンドポイントをユーザー認証に使用すると、Amazon Cognito は「cognito」という名前の Cookie をブラウザに保存します。Cookie は、ユーザープールで設定された Amazon Cognito ドメインに関連付けられます。Cookie は 1 時間有効です。アクティブなセッション中にユーザーが再度サインインしようとすると、Amazon Cognito はユーザーに既存のセッションを続行するかどうかを尋ねます。これにより、ユーザーは認証情報を入力せずにサインインできます。ユーザーが [Sign in as example_username] (example_username としてサインイン) ボタンを選択して既存のセッションを使用する場合、Cookie の有効期間は 1 時間になるようにリセットされます。
ユーザーがブラウザでログアウトエンドポイントにアクセスすると、Amazon Cognito はセッション Cookie をクリアします。ユーザーが再度サインインするには、認証情報を入力する必要があります。
ユーザーがサードパーティー ID プロバイダー (IdP) を使用してサインインする場合、実行する必要のあるステップがもう 1 つあります。ユーザーがいずれかのサードパーティー IdP を使用してサインインした場合、ログアウトエンドポイントにアクセスすると、ブラウザから「cognito」Cookie がクリアされます。ただし、IdP にはまだアクティブなセッションがある場合があります。ユーザーの IdP セッションをクリアするときは、次の情報を考慮してください。
GlobalSignOut API を使用してユーザーをサインアウトする
GlobalSignOut API を使用すると、Amazon Cognito はユーザーに発行されたすべてのアクセスおよび更新トークンを取り消します。Amazon Cognito のみがトークンの取り消しについて通知されることに注意してください。アプリケーションは、有効期限が切れるまで引き続きトークンを受け入れる場合があります。
アプリケーションは、GlobalSignOut API と AdminUserGlobalSignOut API の両方を使用して、ユーザーをグローバルにサインアウトできます。アプリケーションで Amazon Cognito ユーザー認証に REST API を使用する場合、これらの API を使用してユーザーをサインアウトする必要があります。
アプリケーションが取り消されたトークンを使用しようとすると、Amazon Cognito はユーザーによって更新トークンが取り消されたことを示すエラーを表示します。新しい JSON Web Token (JWT) のセットを取得するには、ユーザーは再度サインインする必要があります。
アクセスおよび ID トークンの有効期間は、ユーザープールアプリクライアントで設定できます。有効期間は 5 分から 24 時間の間の値に変更できます。