使用重新整理權杖 - Amazon Cognito

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用重新整理權杖

您可以使用重新整理權杖來擷取新的 ID 權杖和存取權杖。在預設情況下,重新整理權杖會在您的應用程式使用者登入您的使用者集區起 30 天後過期。當建立使用者集區的應用程式時,您可以將應用程式的重新整理權杖過期設為 60 分鐘到 10 年之間的任何值。

如果具有效 (未過期) 的重新整理權杖,適用於 iOS 的 Mobile SDK、適用於 Andriod 的 Mobile SDK、適用於 iOS、Android 和 Flutter 的 Amplify,會自動重新整理 ID 和存取權杖。ID 權杖和存取權杖的剩餘有效期至少為 2 分鐘。如果重新整理權杖已過期,您的應用程式使用者就必須再次登入到您的使用者集區,重新驗證。如果存取權杖和 ID 權杖的最低有效期設定為 5 分鐘,且您正在使用 SDK,重新整理權杖會持續用於擷取新的存取和 ID 權杖。若要查看預期的行為,請設定最小值為 7 分鐘,而不是 5 分鐘。

只要使用者在新帳戶的 UnusedAccountValidityDays 時間限制之前,至少登入一次,使用者帳戶本身就不會過期。

使用重新整理權杖取得新的存取和身分權杖

使用 API 或託管 UI 以啟動重新整理權杖的身分驗證。

若要使用重新整理權杖透過使用者集區 API 取得新的 ID 和存取權杖,請使用AdminInitiateAuthInitiateAuthAPI 作業。為 AuthFlow 參數傳遞 REFRESH_TOKEN_AUTH。在 AuthFlow 的 AuthParameters 屬性中,將使用者的重新整理權杖作為 "REFRESH_TOKEN" 的值傳遞。在您的 API 請求通過所有挑戰後,Amazon Cognito 會傳回新的 ID 權杖和存取權杖。

注意

若要使用 Amazon Cognito 使用者集區 API 重新整理託管 UI 使用者的權杖,請產生 InitiateAuth 請求。

您也可以將重新整理權杖提交至已設定網域的使用者集區中的 權杖端點。在請求內文中,包含 refresh_token 作為 grant_type 的值以及您的使用者重新整理權杖作為 refresh_token 的值。

撤銷重新整理權杖

您可以撤銷屬於使用者的重新整理權杖。如需撤銷權杖的詳細資訊,請參閱撤銷權杖

注意

若撤銷重新整理權杖,將會一併撤銷 Amazon Cognito 從具有該權杖的重新整理請求中發出的所有 ID 和存取權杖。

當您使用 GlobalSignOutAdminUserGlobalSignOut API 操作來撤銷使用者的所有權杖時,使用者可以從其目前登入的所有裝置登出。使用者登出後,會產生下列影響。

  • 使用者的重新整理權杖無法為使用者取得新權杖。

  • 使用者的存取權杖無法提出權杖授權 API 請求。

  • 使用者必須重新驗證才能取得新權杖。由於託管 UI 工作階段 Cookie 不會自動過期,因此您的使用者可以使用工作階段 Cookie 重新驗證,而不會再提示輸入憑證。您將託管 UI 使用者登出之後,將其重新導向 登出端點,Amazon Cognito 將在該處清除其工作階段 Cookie。

使用重新整理權杖就可以在應用程式中長時間保留使用者的工作階段。經過一段時間後,您的使用者可能想要取消某些已登入裝置的授權,並持續重新整理其工作階段。若要將使用者從單一裝置登出,請撤銷其重新整理權杖。當您的用戶想要從所有經過身份驗證的會話中簽出自己時,請生成 GlobalSignOutAPI 請求。您的應用程式可向您的使用者顯示從所有裝置登出這類選項。GlobalSignOut 可接受使用者的 valid–unaltered、unexpired、not-revoked–access 權杖。由於此 API 是權杖授權,因此使用者無法用它來啟動另一位使用者的登出。

但是,您可以生成 AdminUserGlobalSignOutAPI 請求,您可以使用您的 AWS 憑據授權該 API 請求,以便從其所有設備中註銷任何用戶。管理員應用程序必須使用 AWS 開發人員憑據調用此 API 操作,並將用戶池 ID 和用戶的用戶名作為參數傳遞。AdminUserGlobalSignOutAPI 可以將使用者集區中的任何使用者登出。

如需有關可使用 AWS 認證或使用者存取權杖授權之要求的詳細資訊,請參閱Amazon Cognito 使用者集區經身分驗證和未進行身分驗證的 API 操作