对SPA使用刷新令牌和静默身份验证有什么区别?

时间:2019-01-15 13:17:36

标签: authentication oauth oauth-2.0 authorization

据我了解,您不得为SPA发行刷新令牌。但是,还有一些选项可以获取新的访问令牌,例如静默身份验证。

为简单起见,您向授权服务器(AS)提供刷新令牌,并获取新的访问令牌。使用静默身份验证,您可以将当前访问令牌传递到AS上的某个端点,如果有效,您将获得一个新的访问令牌。

所以请纠正我,因为我不明白为什么静默身份验证是更安全的方法。

1 个答案:

答案 0 :(得分:1)

  

通过静默身份验证,您可以将当前访问令牌传递到AS上的某个端点,如果有效,您将获得一个新的访问令牌。

那是不正确的。

具有静默身份验证的流程如下:

身份验证服务器(AS)和客户端(SPA)

  • SPA重定向用户以使用AS登录。
  • AS登录用户并使用可用于访问API的访问令牌重定向回SPA
  • SPA会调用API直到获得401。(或使用其他某种机制找出获取新访问令牌的时间)
  • SPA对AS进行静默GET <Frame x:Name="frame" /> 个端点试图获取新的访问令牌。它不是 需要提供旧的过期访问令牌。
  • Navigated用户仍然有一个 与AS的有效会话(可能是某种身份验证cookie),然后AS 使用有效的访问令牌进行响应(如果AS认为该请求是 有效)。

好的article解释了静默身份验证

关于为何偏爱身份验证cookie而不是刷新令牌的原因-此question对此进行了澄清。