跳至內容

為什麼我在 Cognito 使用者集區 API 中收到 "Invalid Refresh Token" 錯誤?

1 分的閱讀內容
0

我想對 Amazon Cognito 使用者集區 API 中的 "Invalid Refresh Token" 錯誤進行疑難排解。

解決方法

您使用的應用程式用戶端 ID 與重新整理權杖不同

當使用者使用 AdminInitiateAuth API、InitiateAuth API 或託管 UI 進行驗證時,應用程式用戶端 ID 將會作為 ClientId 參數。如果您使用的應用程式用戶端 ID 與簽發重新整理權杖的用戶端 ID 不同,則 API 將傳回 "Invalid Refresh Token" 錯誤。

若要解決此錯誤,請在呼叫 AdminInitiateAuthInitiateAuth API 時,使用與簽發原始重新整理權杖相同的應用程式用戶端 ID。

您有未確認的裝置,且已開啟裝置追蹤功能

如果您為使用者集區啟用裝置追蹤功能,但未確認該裝置,則當您嘗試取得新權杖時會收到 "Invalid Refresh Token" 錯誤。

若要解決此錯誤,請呼叫 ConfirmDevice API 以確認裝置,並開始裝置追蹤。然後,使用重新整理權杖來取得新的存取和 ID 權杖。如需詳細資訊,請參閱設定記住的裝置

您的驗證參數中缺少裝置金鑰

當您為使用者集區啟用裝置追蹤功能後,Amazon Cognito 會在驗證成功後傳回唯一的裝置金鑰。若要使用重新整理權杖取得新權杖,請在下列驗證請求中包含裝置金鑰:

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

**注意:**將 example_refresh_tokenexample_secret_hashexample_device_key 替換為您自己的值。

如果您的應用程式用戶端使用用戶端密碼,請在 AuthParameters 中包含 SECRET_HASH 參數。這可驗證請求是否來自您的應用程式。

如果裝置金鑰未作為其中一個AuthParameters 傳遞,您將收到 "Invalid Refresh Token" 錯誤。若要解決該錯誤,請務必將裝置金鑰作為 AuthParameters 新增至 AdminInitiateAuthInitiateAuth API 中。

您已啟用裝置追蹤,但重新整理權杖具有驗證流程

當您啟用裝置追蹤時,USER_PASSWORD_AUTH 流程不支援權杖重新整理。使用者集區裝置追蹤功能只能與 USER_SRP_AUTH 驗證流程一起使用。

如果您在使用重新整理權杖時嘗試取得新權杖,則會收到 "Invalid Refresh Token" 錯誤。若要解決此錯誤,請追蹤您的使用者裝置,然後使用 USER_SRP_AUTH 驗證流程。

相關資訊

重新整理權杖

使用 Amazon Cognito 使用者集區進行驗證

應用用戶端的特定應用程式設定

使用 Amazon Cognito 的使用者集區來追蹤和記住裝置

AWS 官方已更新 4 個月前