了解重新整理權杖 - Amazon Cognito

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

了解重新整理權杖

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

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

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

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

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

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

注意

若要使用 Amazon Cognito 使用者集區API重新整理託管 UI 使用者的權杖,請使用REFRESH_TOKEN_AUTH流程產生InitiateAuth請求。在您的應用程式中,這種權杖處理方法不會影響使用者的託管 UI 工作階段。API 回應會發出新的 ID 和存取權杖,但不會更新託管的 UI 工作階段 Cookie。

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

撤銷重新整理權杖

您可以撤銷屬於使用者的重新整理權杖。如需撤銷權杖的詳細資訊,請參閱使用字符撤銷結束使用者工作階段

注意

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

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

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

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

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

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

不過,您可以產生一個AdminUserGlobalSignOutAPI請求,讓您使用 AWS 憑證授權從其所有裝置登出任何使用者。管理員應用程式必須使用API AWS 開發人員憑證呼叫此操作,並傳遞使用者集區 ID 和使用者的使用者名稱作為參數。AdminUserGlobalSignOut API 可以登出使用者集區中的任何使用者。

如需使用 AWS 憑證或使用者存取權杖授權之請求的詳細資訊,請參閱 Amazon Cognito 使用者集區已驗證和未驗證API的操作