我刚刚开始使用 Google API 和 OAuth2。当客户端授权我的应用程序时,我会获得一个“刷新 token ”和一个短暂的“访问 token ”。现在,每次访问 token 过期时,我都可以将刷新 token 发布给 Google,他们会给我一个新的访问 token 。
我的问题是访问 token 过期的目的是什么?为什么不能用持久的访问 token 来代替刷新 token ?
另外,刷新 token 会过期吗?
参见Using OAuth 2.0 to Access Google APIs有关 Google OAuth2 工作流程的更多信息。
最佳答案
这在很大程度上是特定于实现的,但总体思路是允许提供商使用长期刷新 token 来颁发短期访问 token 。为什么?
- 许多提供商都支持不记名 token ,但这种 token 的安全性非常薄弱。通过使它们的生命周期较短并需要刷新,它们限制了攻击者滥用被盗 token 的时间。
- 大规模部署不希望每次 API 调用都执行数据库查找,因此它们会颁发可通过解密进行验证的自编码访问 token 。然而,这也意味着无法撤销这些代币,因此它们的发行时间很短,必须刷新。
- 刷新 token 需要客户端身份验证,这使其更强大。与上述访问 token 不同,它通常通过数据库查找来实现。
关于oauth - 为什么访问 token 会过期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7030694/