http - Oauth 仅撤销访问 token

标签 http authentication oauth-2.0

我使用 OAuth 2.0 在我的网站上登录用户。就像任何类型的网站一样,例如谷歌、Asana 等。

我想知道是否有一种方法可以在用户注销时仅撤销访问 token 而不撤销刷新 token 。

这是我的做法:

当用户登录时,我创建一个 session 并获取访问 token (如果用户是首次登录,则获取刷新 token )。当用户注销时,我只是使 session 无效,但访问 token 仍然有效。

当然,访问 token 会在一段时间后或当用户再次登录网络应用程序时失效,但我想知道访问 token 是否可以在注销过程中失效。

最佳答案

作为 token 撤销行为的实现,这个问题没有通用的答案。相关 token 是特定于授权服务器的。 Google 将使刷新 token 与被撤销的访问 token 一起失效,其他实现可能选择不这样做。然而,其他实现甚至可能根本不提供撤销访问 token 的方法。

对于 Google,您可以在注销时撤销访问 token ,如 https://developers.google.com/accounts/docs/OAuth2WebServer#tokenrevoke 中所述但它也会撤销关联的刷新 token 。然后您必须再次通过授权代码流以获得新的刷新 token ,您可以尝试使用 prompt=none 以避免提示用户。

关于http - Oauth 仅撤销访问 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28526092/

相关文章:

.net - 通过身份验证自动从网站下载图片

java - Spring LDAP 身份验证问题

ios - Swift 中的 PFUser logInWithUsernameInBackground - 参数 'target' 调用缺少参数

asp.net - ASP .NET MVC 在工作期间进行身份验证和保持用户身份验证的最佳实践

java - 如果刷新 token 被撤销,则从应用程序中注销用户

Symfony2+FOSOAuthServerBundle : Browser-less initial authentication

http - 尝试读取 HTTP post 中的响应后出现错误

c# - 有没有办法对超时错误进行单元测试?

python - 如何在 Web 应用程序(Google、Facebook、Twitter)中管理多个身份验证服务

http - 如果没有可用连接,黑莓 HTTP 请求是否会立即出错?