Amazon Cognito ユーザープール API の「無効な更新トークン」エラーをトラブルシューティングする方法を教えてください。

所要時間1分
0

Amazon Cognito ユーザープール API から返される「無効な更新トークン」エラーのトラブルシューティング方法に関する情報が必要です。

簡単な説明

Amazon Cognito ユーザープールによって発行された更新トークンは、新しいアクセストークンと ID トークンを取得するために使用されます。更新トークンを使用して新しいアクセスと ID トークンをリクエストすると、次の理由により「更新トークンが無効です」というエラーが表示されて失敗することがあります。

  • 更新トークンを発行したアプリクライアント ID とは異なるアプリクライアント ID を使用している。
  • デバイストラッキングがオンになっているが、ConfirmDevice API でデバイスが確認されていない。
  • デバイストラッキングがオンになっていて、AdminInitiateAuth または InitiateAuth API の AuthParameters としてデバイスキーを渡していない。
  • デバイストラッキングがオンになり、USER_PASSWORD_AUTH 認証フローを使用して更新トークンを取得した。

解決策

更新トークンを発行したアプリクライアント ID とは異なるアプリクライアント ID を使用している

ユーザーが AdminInitiateAuth API、InitiateAuth API、またはホスト UI を使用して認証する場合、アプリクライアント ID が ClientId パラメータとして使用されます。AdminInitiateAuth または InitiateAuth API を使用してトークンを更新するには、同じアプリクライアント ID を使用する必要があります。

別のアプリクライアント ID を使用すると、トークンを更新する API が「無効な更新トークン」エラーで失敗します。

デバイストラッキングがオンになっているが、ConfirmDevice API でデバイスが確認されていない

ユーザープールのデバイストラッキングがオンになっている場合は、ConfirmDevice API を呼び出してデバイスを確認し、デバイストラッキングを開始する必要があります。デバイスを確認したら、更新トークンを使用して新しいアクセストークンと ID トークンを取得できます。

詳細については、「Amazon Cognito ユーザープールで記憶しているデバイスを使用するにはどうすればよいですか?」を参照してください。

デバイスを確認せずに AdminInitiateAuth または InitiateAuth API を呼び出して新しいトークンを取得すると、「無効な更新トークン」というエラーが表示されます。

デバイストラッキングがオンになっていて、AdminInitiateAuth または InitiateAuth API の AuthParameters としてデバイスキーを渡していない。

ユーザープールのデバイストラッキングを有効にすると、認証に成功した後に固有のデバイスキーが返されます。更新トークンを使用して新しいトークンを取得しようとする場合、AdminInitiateAuth API または InitiateAuth API でデバイスキーを AuthParameters として渡す必要があります。

注: example_refresh_tokenexample_secret_hashexample_device_key を独自の値に置き換えてください。

{
  "AuthFlow": "REFRESH_TOKEN_AUTH",
  "AuthParameters": {
    "REFRESH_TOKEN": "example_refresh_token",
    "SECRET_HASH": "example_secret_hash",  
    "DEVICE_KEY": "example_device_key"
  }
}

SECRET_HASH は、アプリクライアントにクライアントシークレットを設定する場合に必要な AuthParameters の 1 つです。

デバイスキーが AuthParameters の 1 つとして渡されない場合、「無効な更新トークン」というエラーが表示されます。

デバイストラッキングがオンになり、USER_PASSWORD_AUTH 認証フローを使用して更新トークンを取得した

ユーザープールのデバイストラッキング機能は、USER_SRP_AUTH 認証フローでのみ使用できます。AdminInitiateAuth API、InitiateAuth API、またはホストされた UI を使用する初期認証には、USER_SRP_AUTH フローを使用する必要があります。

USER_PASSWORD_AUTH 認証フローを使用すると、アクセストークン、ID トークン、および更新トークンを受け取ります。ただし、更新トークンを使用して新しいトークンを取得しようとすると、「無効な更新トークン」というエラーが表示されます。


AWS公式
AWS公式更新しました 1年前
コメントはありません

関連するコンテンツ