メニュー
Amazon Cognito
開発者ガイド (Version 最終更新日: 2016 年 7 月 28 日)

トークンエンドポイント

Amazon Cognito ユーザープールのアプリ統合およびフェデレーションはベータリリース版であり、変更されることがあります。

/token エンドポイントは、ユーザーのトークンを取得します。

POST /token

/token エンドポイントは HTTPS POST のみをサポートします。ユーザープールクライアントは、システムブラウザ経由ではなくこのエンドポイントに直接リクエストを送信します。

リクエストパラメータ

承認

クライアントがシークレットで発行された場合、クライアントはその client_id および client_secret をベーシック HTTP 認証を介して認証ヘッダーに渡す必要があります。シークレットはベーシック Base64Encode(client_id:client_secret) です。

コード

grant_typeauthorization_code の場合は必須です。

Content-Type

常に 'application/x-www-form-urlencoded' にする必要があります。

本文のリクエストパラメータ

grant_type

付与タイプ。

authorization_code または refresh_token である必要があります。

必須

client_id

クライアント ID。

ユーザープールに登録済みのクライアントである必要があります。クライアントは Amazon Cognito フェデレーションが有効になっている必要があります。

必須

redirect_uri

/authorize で authorization_code を取得するために使用された redirect_uri と同じである必要があります。

grant_typeauthorization_code の場合のみ必須です。

refresh_token

更新トークン。

grant_typerefresh_token の場合は必須です。

code_verifier

証明キー。

grant_typeauthorization_code であり、認証コードが PKCE を使用してリクエストされた場合は必須です。

正しいリクエストの例

リクエスト例: トークン用の認証コードの交換

Copy
POST https://mydomain.auth.us-east-1.amazoncognito.com/token& Content-Type='application/x-www-form-urlencoded'& Authorization=Basic aSdxd892iujendek328uedj grant_type=authorization_code& client_id=djc98u3jiedmi283eu928& code=AUTHORIZATION_CODE& redirect_uri=com.myclientapp://myclient/redirect

レスポンス例

HTTP/1.1 200 OK
Content-Type: application/json

{ 
 "access_token":"eyJz9sdfsdfsdfsd", 
 "refresh_token":"dn43ud8uj32nk2je", 
 "id_token":"dmcxd329ujdmkemkd349r",
 "token_type":"Bearer", 
 "expires_in":3600
}

リクエスト例: トークン用の PKCE を使用した認証コード付与の交換

Copy
POST https://mydomain.auth.us-east-1.amazoncognito.com/token Content-Type='application/x-www-form-urlencoded'& Authorization=Basic aSdxd892iujendek328uedj grant_type=authorization_code& client_id=djc98u3jiedmi283eu928& code=AUTHORIZATION_CODE& code_verifier=CODE_VERIFIER& redirect_uri=com.myclientapp://myclient/redirect

レスポンス例

HTTP/1.1 200 OK
Content-Type: application/json

{
 "access_token":"eyJz9sdfsdfsdfsd",
 "refresh_token":"dn43ud8uj32nk2je",
 "id_token":"dmcxd329ujdmkemkd349r",
 "token_type":"Bearer", 
 "expires_in":3600
}

リクエスト例: トークン用の更新トークンの交換

Copy
POST https://mydomain.auth.us-east-1.amazoncognito.com/authorize > Content-Type='application/x-www-form-urlencoded' Authorization=Basic aSdxd892iujendek328uedj grant_type=refresh_token& client_id=djc98u3jiedmi283eu928& refresh_token=REFRESH_TOKEN

レスポンス例

HTTP/1.1 200 OK
Content-Type: application/json

{
 "access_token":"eyJz9sdfsdfsdfsd", 
 "refresh_token":"dn43ud8uj32nk2je", 
 "id_token":"dmcxd329ujdmkemkd349r",
 "token_type":"Bearer", 
 "expires_in":3600
}

誤ったリクエストの例

エラー応答のサンプル

HTTP/1.1 400 Bad Request
Content-Type: application/json;charset=UTF-8

{
"error":"invalid_request|invalid_client|invalid_grant|unauthorized_client|unsupported_grant_type|"
}
invalid_request

リクエストに必須パラメータが含まれていない、サポートされていないパラメータ値 (unsupported_grant_type 以外) が含まれている、または正しい形式ではありません。たとえば、grant_typerefresh_token であるが、refresh_token が含まれていない、などです。

invalid_client

クライアントの認証に失敗しました。たとえば、クライアントが認証ヘッダーに client_idclient_secret を含めたが、その client_idclient_secret を持つクライアントが存在しない場合です。

invalid_grant

更新トークンが失効しています。

認証コードが既に消費されているか、存在しません。

unauthorized_client

クライアントがコード付与フローまたはトークンの更新を許可されていません。

unsupported_grant_type

grant_typeauthorization_code または refresh_token 以外の値の場合に返されます。

このページの内容: