哪一侧需要更新access_token

时间:2018-09-11 22:46:01

标签: security oauth-2.0 token

由于access_token的生存期很短,为方便用户,使用了refresh_token。

让我们想象一下,我们有客户端移动iOs / android应用。首次登录后,当用户提供其用户名和凭据时,随后的请求将发送到服务器端,并以访问和刷新令牌作为响应。

但是,如果访问令牌还剩1分钟或已经过期,该怎么办。验证过程应该在服务器端吗?

服务器获得一个请求(例如网关代理),从标头中读取身份验证令牌,验证过期时间,如果存在刷新令牌(例如在标头中),则在引擎盖下更新令牌,修改初始请求并继续新创建的access_token ?

还是这种迭代应该执行客户端应用程序?对于每个请求,请验证expires_in日期,如果是,则使用refresh_token授予类型要求新的access_token,并且仅在此之后进行远程调用?

1 个答案:

答案 0 :(得分:0)

根据OAuth,当您的初始令牌到期时,根据具体情况,您应该通过将refresh_token值发送到相应的服务器端点来刷新它。服务器执行刷新操作,生成新令牌,因此您将获得具有新token日期的新expires_in。您将获得许多有关如何由客户端发送刷新令牌的选项,例如:

  • 具有计时器并在令牌到期之前发送刷新操作。
  • 如果您遇到401状态错误。

我建议您对HTTP拦截器进行编码,并且当响应收到401代码时,您应该发送刷新操作。