

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

# 使用字符撤銷結束使用者工作階段
<a name="token-revocation"></a>

您可以使用下列方法撤銷重新整理字符和最終使用者工作階段。撤銷重新整理權杖時，先前該重新整理權杖發行的所有存取權杖都會無效。發行給使用者的其他重新整理權杖不受影響。

**RevokeToken 操作**  
[RevokeToken](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RevokeToken.html) 會撤銷指定重新整理字符的所有存取字符，包括互動式登入的初始存取字符。此操作不會影響任何使用者的其他重新整理字符，或那些其他重新整理字符的 ID 和存取字符子系。

**撤銷端點**  
[撤銷端點](revocation-endpoint.md)會撤銷指定的重新整理權杖，以及重新整理權杖產生的所有 ID 和存取權杖。此端點也會從互動式登入撤銷初始存取權杖。此端點的請求不會影響任何使用者的其他重新整理字符，或那些其他重新整理字符的 ID 和存取字符子系。

**GlobalSignOut 操作**  
[GlobalSignOut](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GlobalSignOut.html) 是使用者使用存取權杖授權的自助式操作。此操作會撤銷所有請求使用者的重新整理、ID 和存取權杖。

**AdminUserGlobalSignOut 操作**  
[AdminUserGlobalSignOut](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUserGlobalSignOut.html) 是管理員使用 IAM 登入資料授權的伺服器端操作。此操作會撤銷所有目標使用者的重新整理、ID 和存取權杖。

**撤銷權杖的須知事項**
+ 撤銷重新整理權杖的請求中必須包含用來取得該權杖的用戶端 ID。
+ 使用者集區 JWTs會與建立字符時指派的簽章和過期時間獨立。撤銷的權杖不能與任何需要權杖的 Amazon Cognito API 呼叫搭配使用。但如果使用驗證權杖簽章和過期時間的任何 JWT 程式庫進行驗證，則已撤銷的權杖仍有效。
+ 建立新使用者集區用戶端時，撤銷權杖功能會預設為啟用。
+ 您只能在啟用字符撤銷的應用程式用戶端中撤銷重新整理字符。
+ 啟用撤銷權杖功能後，新宣告會新增到 Amazon Cognito JSON Web 權杖。存取權杖和 ID 權杖中會新增 `origin_jti` 和 `jti` 宣告。這些宣告會增加應用程式用戶端存取和 ID 權杖的大小。
+ 當您在先前啟用的應用程式用戶端中停用字符撤銷時，撤銷的字符不會再次變為作用中。
+ 當您[停用使用者帳戶 ](how-to-manage-user-accounts.md#manage-user-accounts-enable-disable)（撤銷重新整理和存取權杖） 時，如果您再次啟用使用者帳戶，則撤銷的權杖不會變成作用中。
+ 當您使用 AWS CLI、 AWS 管理主控台或 API 建立新的使用者集區用戶端時 AWS ，預設會啟用字符撤銷。

## 啟用撤銷權杖功能
<a name="enable-token-revocation"></a>

您必須先啟用撤銷權杖功能，才能為現有使用者集區用戶端撤銷權杖。您可以使用 或 AWS API 為現有的使用者集區用戶端 AWS CLI 啟用字符撤銷。若要執行此操作，請呼叫 `aws cognito-idp describe-user-pool-client` CLI 命令或 `DescribeUserPoolClient` API 操作，以從您的應用程式用戶端檢索當前設置。然後呼叫 `aws cognito-idp update-user-pool-client` CLI 命令或 `UpdateUserPoolClient` API 操作。包含來自您應用程式用戶端中的當前設定，並將 `EnableTokenRevocation` 參數設為 `true`。

若要建立或修改已啟用 Amazon Cognito API 或 AWS SDK 的字符撤銷的應用程式用戶端，請在 [CreateUserPoolClient](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPoolClient.html) 或 [UpdateUserPoolClient](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPoolClient.html) API 請求中包含下列參數。

```
"EnableTokenRevocation": true
```

若要在 Amazon Cognito 主控台中設定權杖撤銷，請從使用者集區中的應用程式用戶端功能表中選取**應用程式用戶端**。選取**應用程式用戶端資訊**中的**編輯**按鈕，並在**進階組態**下啟用或停用字符撤銷。

## 撤銷權杖
<a name="revoke-tokens-api"></a>

您可以使用 [RevokeToken](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RevokeToken.html) API 請求撤銷重新整理權杖，例如使用 `[aws cognito-idp revoke-token](https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/revoke-token.html)` CLI 命令。您也可以使用 [撤銷端點](revocation-endpoint.md) 撤銷權杖。此端點在您將網域新增至使用者集區之後才能使用。您可以在 Amazon Cognito 託管網域或您自己的自訂網域上，使用撤銷端點功能。

以下是 `RevokeToken` API 請求範例的內文：

```
{
   "ClientId": "1example23456789",
   "ClientSecret": "abcdef123456789ghijklexample",
   "Token": "eyJjdHkiOiJKV1QiEXAMPLE"
}
```

以下是對具有自訂網域的使用者集區的 `/oauth2/revoke` 端點提出的範例 cURL 請求。

```
curl --location 'auth.mydomain.com/oauth2/revoke' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Basic Base64Encode(client_id:client_secret)' \
--data-urlencode 'token=abcdef123456789ghijklexample' \
--data-urlencode 'client_id=1example23456789'
```

`RevokeToken` 操作和 `/oauth2/revoke` 端點都不需要額外授權，除非您的應用程式用戶端有用戶端密碼。