ログアウトエンドポイント
/logout
エンドポイントはユーザーをサインアウトし、アプリクライアントの許可サインアウト URL または /login
エンドポイントにリダイレクトする必要があります。
GET /logout
/logout
エンドポイントは HTTPS GET
のみをサポートします。ユーザープールクライアントは通常、このリクエストをシステムブラウザ経由で行います。ブラウザは通常、Android では Custom Chrome Tab、iOS では Safari View Control です。
パラメータのリクエスト
- client_id
-
アプリのアプリクライアント ID。アプリクライアント ID を取得するには、ユーザープールにアプリを登録する必要があります。詳細については、「ユーザープールのアプリケーションクライアントの設定」を参照してください。
必須。
- logout_uri
-
logout_uri パラメータを使用して、ユーザーをカスタムサインアウトページにリダイレクトします。この値を、ユーザーがサインアウトした後にユーザーをリダイレクトするアプリクライアントの[sign-out URL] (サインアウト URL) に設定します。logout_uri は、client_id パラメータでのみ使用してください。詳細については、「ユーザープールのアプリケーションクライアントの設定」を参照してください。
logout_uri パラメータを使用して、ユーザーを別のアプリクライアントのサインインページにリダイレクトすることもできます。他のアプリクライアントのサインインページを、アプリクライアントで許可されたコールバック URL として設定します。
/logout
エンドポイントへのリクエストで、logout_uri パラメータの値を URL エンコードされたサインインページに設定します。Amazon Cognito では、
/logout
エンドポイントへのリクエストに logout_uri または redirect_uri パラメータのいずれかが必要です。logout_uri パラメータは、ユーザーを別のウェブサイトにリダイレクトします。 - redirect_uri
-
redirect_uri パラメータを使用して、ユーザーをサインインページにリダイレクトし、認証を行います。その値を、サインインした後にユーザーをリダイレクトするアプリクライアントの[Allowed callback URL] (許可されたコールバック URL) に設定します。
/login
エンドポイントに渡す client_id、scope、state、response_type のパラメータを追加します。Amazon Cognito では、
/logout
エンドポイントへのリクエストに logout_uri または redirect_uri パラメータのいずれかが必要です。ユーザーを/login
エンドポイントにリダイレクトして再認証し、トークンをアプリに渡す場合は、redirect_uri パラメータを追加します。 - response_type
-
ユーザーがサインインした後に Amazon Cognito から受信する OAuth 2.0 レスポンス。
code
とtoken
は、response_type パラメータの有効な値です。redirect_uri パラメータを使用する場合は必須です。
- state
-
アプリがリクエストに state パラメータを追加すると、Amazon Cognito は
/oauth2/logout
エンドポイントはユーザーをリダイレクトする際に、その値をアプリに返します。この値をリクエストに追加して CSRF
攻撃から保護します。 state
パラメータの値を、URL でエンコードされた JSON 文字列に設定することはできません。この形式に一致する文字列をstate
パラメータとして渡すには、文字列を Base64 にエンコードし、アプリ内でデコードします。redirect_uri パラメータを使用する場合は強くお勧めします。
- scope
-
redirect_uri パラメータを使用してサインアウトした後に Amazon Cognito にリクエストする OAuth 2.0 スコープ。Amazon Cognito は、
/logout
エンドポイントへのリクエストの scope パラメータを使用してユーザーを/login
エンドポイントにリダイレクトします。redirect_uri パラメータを使用する場合は任意。scope パラメータを含めない場合、Amazon Cognito は scope パラメータを使用してユーザーを
/login
エンドポイントにリダイレクトします。Amazon Cognito がユーザーをリダイレクトし、scope
に自動的にデータを入力する場合、パラメータには、アプリクライアントに対して許可されているすべてのスコープが含まれます。
リクエスト例
例 1: ログアウトしてユーザーをクライアントにリダイレクトする
この例では、既存のセッションが消去され、ユーザーをクライアントにリダイレクトします。このような logout_uri
パラメータを使用したリクエストの例でも、client_id
パラメータが必要です。
GET https://mydomain.auth.us-east-1.amazoncognito.com/logout? client_id=ad398u21ijw3s9w3939& logout_uri=https://myclient/logout
例 2: ログアウトして別のユーザーとしてサインインするよう指示する
この例では、既存のセッションが消去され、ログイン画面を表示します。この例では、認可エンドポイント へのリクエストで使用するのと同じパラメータを使用します。
GET https://mydomain.auth.us-east-1.amazoncognito.com/logout? response_type=code& client_id=ad398u21ijw3s9w3939& redirect_uri=https://YOUR_APP/redirect_uri& state=STATE& scope=openid+profile+aws.cognito.signin.user.admin