为什么 API 不使用访问令牌而不是刷新令牌?



我已经看到了

为什么 OAuth v2 同时具有访问令牌和刷新令牌?

https://auth0.com/blog/refresh-tokens-what-are-they-and-when-to-use-them/

根据我的理解,这就是OAuth v2的工作方式:

1) 用户将其凭据发送到服务器,服务器对其进行验证并返回access_tokenrefresh_token

2)用户发送此acsess_token以及进一步的自我识别请求

3)当access_token到期时,用户向服务器发送另一个请求,其中包含refresh_token和其他必需参数,要求新的access_tokenrefresh_token

这是我的问题:

需要

单独的refresh_token吗?为什么不发送旧access_token无论如何即将过期),换一个新的??

使用refresh_token的额外优势是什么?

从理论上讲,访问令牌的作用更大。它可以在浏览器中、客户端的服务器端、授权服务器上或资源服务器上。访问令牌将附加到每个 API 请求,而刷新令牌的使用频率应低得多。

网上的几句话...

与访问令牌不同,刷新令牌仅用于授权服务器,永远不会发送到资源服务器。https://www.rfc-editor.org/rfc/rfc6749#section-10.4

[刷新令牌] 通常受到严格的存储要求,以确保它们不会泄露。https://auth0.com/learn/refresh-tokens/

基本上,如果我们只有访问令牌,则攻击面会更大。

最新更新