oauth - 为什么访问 token 会过期?

标签 oauth oauth-2.0 google-api google-oauth

我刚刚开始使用 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/

相关文章:

oauth - 错误 : "message": "Login Required" when use Youtube Analytics API

php - 错误 : failed to write, 无法打开流,pecl 在 mac osx el capitan 上安装 oauth

c# - 如何授权来自另一个 WebApi 项目的请求

oauth-2.0 - 为什么在 native 应用程序中使用 PKCE 保护授权代码?之后是什么保护访问 token ?

api - Google Oauth2 userinfo API 不返回用户名数据

ios - Uber 在 ios Swift 中提供了无效的 OAuth 2.0 凭据 Uber 身份验证

oauth - 将session_state存储在客户端本地存储中可以吗?

OAuth2 访问 token 格式

python - 使用 Python 在 Google App Engine 中提供 Google 配置 API 和 oAuth2

javascript - googleapis TypeError : authClient. 请求不是 nodejs 中的函数