首页 文章

OAuth - 在“社交登录”中使用刷新令牌

提问于
浏览
0

this SO reply中所述的OAuth2的正常流程如下:

  • 使用访问令牌发送API请求

  • 如果访问令牌无效,请尝试使用刷新令牌更新它

  • 如果刷新请求通过,则更新访问令牌并重新发送初始API请求

  • 如果刷新请求失败,请要求用户重新进行身份验证

这对于大多数API调用来说都很好,但我想知道一件事:身份验证 .

当用户尝试使用他们喜欢的服务登录我喜欢的新webapp时,我是否应该使用他们的刷新令牌(或OAuth1中的缓存访问令牌)来尝试登录,或者我应该总是去获取新的令牌来自服务提供商(谷歌,Facebook等)并丢弃存储的访问和刷新令牌?

1 回答

  • 0

    用户身份验证和OAuth 2.0是两回事 . 差异在下面详细解释:http://oauth.net/articles/authentication/ . 即使在OAuth 2.0之上构建用户身份验证/ SSO协议 - 这是OpenID Connect的功能和某些供应商特定的实现 - refresh_token 仍然始终适用于 access_token 而不是用户身份验证事件或身份令牌 .

    您不能单独使用刷新令牌来刷新用户的登录会话,因为需要通过浏览器与用户进行某些交互(可能是活动的,可能是被动的)来确认用户是否(仍然)存在 .

    要刷新用户的登录会话,您将始终必须重定向到身份提供程序并获取新的身份验证信息 . 请注意,该交互可能还会为您提供一个新的刷新令牌,可用于刷新访问令牌 .

相关问题