第4部分-撤销OAuth2令牌

情景

您已向用户授予了 Access Token ,如下 part 1 现在,您可能想要撤销该令牌,以响应客户端请求(注销)。

吊销令牌

请确保您已授予有效的令牌。如果你已经上钩了 oauth-toolkit 进入您的 urls.py 如中指定的 part 1 ,您将在以下位置获得一个URL /o/revoke_token 。通过向该URL提交适当的请求,您可以撤销用户的 Access Token

Oauthlib 如规定的那样符合https://rfc-editor.org/rfc/rfc7009.html,,则吊销请求要求:

  • token :必填,这是 Access Token 您想要吊销

  • token_type_hint :可选,指定‘ACCESS_TOKEN’或‘REFRESH_TOKEN’。

请注意,这些特定于吊销的参数是对您的特定客户端类型已经指定的身份验证参数的补充。

设置请求

根据您使用的客户端类型,您可能向身份验证服务器提交的令牌撤销请求可能会有所不同。一个 Public 例如,客户端将无法访问您的 Client Secret 。来自公共客户端的撤销请求将省略该秘密,并采用以下形式:

POST /o/revoke_token/ HTTP/1.1
Content-Type: application/x-www-form-urlencoded
token=XXXX&client_id=XXXX

令牌的位置 Access Token 上面指定的,而客户端id是 Client id 在获得中获得 part 1 。如果您的应用程序类型为 Confidential ,它需要一个 Client secret ,则必须将其添加为参数之一:

POST /o/revoke_token/ HTTP/1.1
Content-Type: application/x-www-form-urlencoded
token=XXXX&client_id=XXXX&client_secret=XXXX

服务器将响应一个 200 成功吊销时的状态代码。您可以使用 curl 在您的服务器上发出吊销请求。如果您有权访问授权服务器的本地安装,则可以使用如下所示的请求来测试吊销令牌 Confidential 客户。

curl --data "token=XXXX&client_id=XXXX&client_secret=XXXX" http://localhost:8000/o/revoke_token/