refresh token安全问题

如果access_token有效期一个小时,refresh_token有效期7天;

  • 那么在这7内天我都可以通过refresh_token获得access_token那不是等价于access_token有效期为7天了吗?
  • 7天的有效期也会让安全风险增加那为什么还要用refresh_token呢?
阅读 6.3k
2 个回答

这是一个有关暴露风险大小和有效期时长的问题,如果我们只有一个 token ,每次请求中都要携带这个,那么它暴露的风险会很高,如果这个 token 的有效期还比较长,那么它一旦暴露,损失会很高,所以 access_token 的有效期需要比较短。

但是我们又不希望用户的登录有效期只能这么短,那么怎么办呢?refresh_token 的存在价值正在这里,refresh_token 只需要在刷新 access_token 的请求里面携带,相对于 access_token 而言,它暴露的风险小很多,所以即便它的有效期比较长,相对来说造成损失的可能性也没那么高。

更详细的看看这个Why Does OAuth v2 Have Both Access and Refresh Tokens?

楼上说到对,安全只是相对的,没有绝对的,只能说我们尽量花相对少量的工作让破解的成本更高。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题