我正在使用此 GitHub 的 API 为用户(移动应用程序)生成访问 token ,使用本教程:
- https://developer.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#authorizing-oauth-apps
我正在使用内置网页,因此用户可以使用用户名和密码登录。之后,用户会收到一个可用于访问 GitHub 范围(在我的例子中为个人资料信息)的 access_token。
响应:
{"access_token":"1234token1234", "scope":"user", "token_type":"bearer"}
但是当用户注销应用程序时,我想删除/撤销这个 token 。我怎样才能做到这一点?
我只在这里找到了这个答案:
Revoking OAuth Access Token Results in 404 Not Found
但它是 2013 年的,并且不起作用。
关于如何解决这个问题有什么想法吗? (对不起英国人,巴西人在这里o/)
最佳答案
对于 future 寻求相同答案的人,我联系了 GitHub 支持,他们帮助我解决了我的问题。
删除/撤销access_token
:
这是使用客户端 ID
和与 OAuth 应用程序绑定(bind)的客户端 key
来处理的:
curl \
-X DELETE \
-H "Accept: application/vnd.github.v3+json" \
-u CLIENT_ID:CLIENT_SECRET \
https://api.github.com/applications/CLIENT_ID/token \
-d '{"access_token":"ACCESS_TOKEN"}'
更详细的解释:https://docs.github.com/en/rest/apps/oauth-applications#delete-an-app-authorization
观察 URL 后缀以了解 /grant
和 /token
之间的差异(请参阅文档)。
访问 token 仍然允许您通过/user 请求获取公共(public)信息,但任何访问受限或私有(private)内容的尝试都将返回授权错误。
关于java - 删除/撤销 GitHub OAuth 'access_token',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56230534/