如果access_token
有效期一个小时,refresh_token
有效期7天;
- 那么在这7内天我都可以通过
refresh_token
获得access_token
那不是等价于access_token
有效期为7天了吗? - 7天的有效期也会让安全风险增加那为什么还要用
refresh_token
呢?
如果access_token
有效期一个小时,refresh_token
有效期7天;
refresh_token
获得access_token
那不是等价于access_token
有效期为7天了吗?refresh_token
呢?15 回答8.4k 阅读
5 回答4.8k 阅读✓ 已解决
8 回答6.2k 阅读
4 回答2.4k 阅读✓ 已解决
1 回答4k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
3 回答6k 阅读
这是一个有关暴露风险大小和有效期时长的问题,如果我们只有一个 token ,每次请求中都要携带这个,那么它暴露的风险会很高,如果这个 token 的有效期还比较长,那么它一旦暴露,损失会很高,所以 access_token 的有效期需要比较短。
但是我们又不希望用户的登录有效期只能这么短,那么怎么办呢?refresh_token 的存在价值正在这里,refresh_token 只需要在刷新 access_token 的请求里面携带,相对于 access_token 而言,它暴露的风险小很多,所以即便它的有效期比较长,相对来说造成损失的可能性也没那么高。
更详细的看看这个Why Does OAuth v2 Have Both Access and Refresh Tokens?