令牌撤销端点
在会话中持有刷新令牌的用户拥有类似于浏览器 Cookie 的东西。只要刷新令牌有效,他们就可以继续现有会话。在用户的 ID 或访问令牌到期后,您的应用程序可以使用刷新令牌来获取新的有效令牌,而不是提示他们登录。但是,您可以从外部判断应该结束用户的会话,或者用户可能选择忘记其当前会话。此时,您可以撤销该刷新令牌,这样用户就无法再维持他们的会话。
/oauth2/revoke
端点撤销 Amazon Cognito 最初使用您提供的刷新令牌颁发的用户访问令牌。此端点还会撤销刷新令牌本身以及来自同一刷新令牌的所有后续访问和身份令牌。端点撤销令牌后,您无法使用已撤销的访问令牌访问 Amazon Cognito 令牌进行身份验证的 API。
POST /oauth2/revoke
/oauth2/revoke
端点只支持 HTTPS
POST
。用户池客户端直接对此端点发出请求,而不通过系统浏览器。
标头中的请求参数
Authorization
-
如果应用程序客户端具有客户端密钥,则客户端必须通过基本 HTTP 授权在其授权标头中传递
client_id
和client_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
此撤销请求会撤销有客户端密钥的应用程序客户端的刷新令牌。请注意,Authorization
标头包含已编码的客户端 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 Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW token=2YotnFZFEjr1zCsicMWpAA
撤消错误响应
成功的响应包含空正文。错误响应是一个带有 error
字段和 error_description
字段(在某些情况下)的 JSON 对象。
端点错误
-
如果令牌在请求中不存在或者应用程序客户端禁用了该特征,则您会收到 HTTP 400 和错误
invalid_request
。 -
如果 Amazon Cognito 在撤销请求中发送的令牌不是刷新令牌,则您会收到 HTTP 400 和错误
unsupported_token_type
。 -
如果客户端凭证无效,则您会收到 HTTP 401 和错误
invalid_client
。 -
如果令牌已撤销或客户端提交的令牌无效,您会收到 HTTP 200 OK。