Oauth 为什么访问令牌会过期?
我刚刚开始使用GoogleAPI和OAuth2。当客户端授权我的应用程序时,我会得到一个“刷新令牌”和一个短暂的“访问令牌”。现在每次访问令牌过期时,我都可以将我的刷新令牌发布到Google,他们会给我一个新的访问令牌 我的问题是访问令牌过期的目的是什么?为什么不能有一个持久的访问令牌而不是刷新令牌呢 此外,刷新令牌是否过期Oauth 为什么访问令牌会过期?,oauth,oauth-2.0,google-api,google-oauth,Oauth,Oauth 2.0,Google Api,Google Oauth,我刚刚开始使用GoogleAPI和OAuth2。当客户端授权我的应用程序时,我会得到一个“刷新令牌”和一个短暂的“访问令牌”。现在每次访问令牌过期时,我都可以将我的刷新令牌发布到Google,他们会给我一个新的访问令牌 我的问题是访问令牌过期的目的是什么?为什么不能有一个持久的访问令牌而不是刷新令牌呢 此外,刷新令牌是否过期 有关Google OAuth2工作流的更多信息,请参阅。它本质上是一种安全措施。如果您的应用受到破坏,攻击者将只能访问短期访问令牌,而无法生成新令牌 刷新令牌也会过期,但它
有关Google OAuth2工作流的更多信息,请参阅。它本质上是一种安全措施。如果您的应用受到破坏,攻击者将只能访问短期访问令牌,而无法生成新令牌
刷新令牌也会过期,但它们的寿命应该比访问令牌长得多。这在很大程度上取决于具体的实现,但总体思路是允许提供商使用长期刷新令牌发布短期访问令牌。为什么?
- 许多提供商支持安全性非常弱的承载令牌。通过使它们短暂且需要刷新,它们限制了攻击者滥用被盗令牌的时间
- 大规模部署不希望在每次API调用时都执行数据库查找,因此它们会发出自编码的访问令牌,该令牌可以通过解密进行验证。然而,这也意味着无法撤销这些令牌,因此它们会在短时间内发出,并且必须刷新
- 刷新令牌需要客户端身份验证,这使其更强大。与上述访问令牌不同,它通常通过数据库查找来实现
希望篇幅较长的帖子有用。除了其他回复外: 一旦获得访问令牌,访问令牌通常与来自客户端的每个请求一起发送到受保护的资源服务器。这会导致访问令牌被盗和重放的风险(当然,假设访问令牌属于“承载者”类型(如初始RFC6750中所定义) 现实生活中这些风险的例子:
- 资源服务器