为啥 API 不使用访问令牌而不是刷新令牌?
Posted
技术标签:
【中文标题】为啥 API 不使用访问令牌而不是刷新令牌?【英文标题】:Why don't APIs use access token instead of refresh token?为什么 API 不使用访问令牌而不是刷新令牌? 【发布时间】:2018-04-17 15:24:37 【问题描述】:我已经看过了
Why Does OAuth v2 Have Both Access and Refresh Tokens?
https://auth0.com/blog/refresh-tokens-what-are-they-and-when-to-use-them/
据我了解,这就是 OAuth v2 的工作方式:
1) 用户将他的凭据发送到验证它的服务器并返回一个access_token
和一个refresh_token
2) 用户发送此 acsess_token
以及进一步的身份验证请求
3) 当access_token
过期时,用户向服务器发送另一个请求,其中包含refresh_token
和其他必需参数,要求新的access_token
和refresh_token
这是我的问题:
单独的refresh_token
需要什么?为什么不发送旧的access_token
(反正即将过期),换一个新的??
使用refresh_token
的额外优势是什么?
【问题讨论】:
【参考方案1】:理论上,访问令牌更重要。它可以在浏览器中,在客户端的服务器端,在授权服务器或资源服务器上。访问令牌将附加到每个 API 请求,而刷新令牌的使用频率则要低得多。
来自网络的一些引用......
与访问令牌不同,刷新令牌仅适用于授权服务器,绝不会发送到资源服务器。 https://www.rfc-editor.org/rfc/rfc6749#section-10.4
[刷新令牌]通常受到严格的存储要求,以确保它们不被泄露。 https://auth0.com/learn/refresh-tokens/
基本上,如果我们只有访问令牌,攻击面会更大。
【讨论】:
以上是关于为啥 API 不使用访问令牌而不是刷新令牌?的主要内容,如果未能解决你的问题,请参考以下文章