令牌吊销端点 - Amazon Cognito

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

令牌吊销端点

在会话中持有刷新令牌的用户拥有类似于浏览器 Cookie 的内容。只要刷新令牌有效,他们就可以续订现有会话。您的应用程序可以使用刷新令牌来获取新的有效令牌,而不是在用户的 ID 或访问令牌到期后提示他们登录。但是,您可以从外部决定是否应结束用户的会话,或者该用户可能会选择忘记其当前会话。此时,您可以撤消该刷新令牌,这样他们就无法再保留会话。

/oauth2/revoke终端节点会撤销 Amazon Cognito 最初与您提供的刷新令牌一起发布的用户访问令牌。此端点还会撤消刷新令牌本身以及来自同一刷新令牌的所有后续访问和身份令牌。终端节点撤销令牌后,您无法使用已撤销的访问令牌来访问 Amazon Cognito APIs 令牌进行身份验证。

POST /oauth2/revoke

/oauth2/revoke 端点只支持 HTTPS POST。用户池客户端直接对此端点发出请求,而不通过系统浏览器。

标头中的请求参数

Authorization

如果您的应用程序客户端有客户端密钥,则该应用程序必须通过基本HTTP授权传递其client_idclient_secret在授权标头中。密钥是基本 Base64Encode(client_id:client_secret)

Content-Type

必须始终为 'application/x-www-form-urlencoded'

正文中的请求参数

token

(必需)客户端要撤消的刷新令牌。请求还撤销 Amazon Cognito 使用此刷新令牌颁发的所有访问令牌。

必需。

client_id

(可选)您要撤销的令牌的应用程序客户端 ID。

如果客户端是公有的且没有密钥,则为必需。

撤消请求示例

此撤销请求会撤消没有客户端密钥的应用程序客户端的刷新令牌。请注意请求正文中的client_id参数。

POST /oauth2/revoke HTTP/1.1 Host: https://mydomain.auth.us-east-1.amazoncognito.com Accept: application/json Content-Type: application/x-www-form-urlencoded token=2YotnFZFEjr1zCsicMWpAA& client_id=djc98u3jiedmi283eu928

此撤销请求会撤消具有客户端密钥的应用程序客户端的刷新令牌。请注意包含已编码的客户端 ID 和客户端密钥的Authorization标头,但请求正文client_id中没有。

POST /oauth2/revoke HTTP/1.1 Host: https://mydomain.auth.us-east-1.amazoncognito.com Accept: application/json Content-Type: application/x-www-form-urlencoded Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW token=2YotnFZFEjr1zCsicMWpAA

撤消错误响应

成功的响应包含空正文。错误响应是一个带有error字段的JSON对象,在某些情况下还有一个error_description字段。

端点错误

  • 如果请求中不存在令牌,或者应用程序客户端禁用了该功能,则会收到 HTTP 400 和错误invalid_request

  • 如果 Amazon Cognito 在撤销请求中发送的令牌不是刷新令牌,则您将收到 HTTP 400 和错误。unsupported_token_type

  • 如果客户端凭据无效,则会收到 HTTP 401 和错误invalid_client

  • 如果令牌已被撤销,或者客户提交的令牌无效,您将收到 HTTP 200 OK。