Oauth仅撤销访问令牌

时间:2015-02-15 12:37:23

标签: http authentication oauth-2.0

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

我想知道的是,当用户退出时,是否有办法只撤销访问令牌而不撤销刷新令牌。

这就是我的所作所为:

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

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

1 个答案:

答案 0 :(得分:1)

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

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