【问题标题】:Best practice to manage google oauth token管理 google oauth 令牌的最佳实践
【发布时间】:2019-02-21 16:43:47
【问题描述】:

我正在使用 google calendar api 制作网络应用程序。

在这个应用程序中,我请求用户在注册时使用Google Oauth2 授权 Google 日历访问。

我的问题是返回的令牌已在 1 小时后过期,因此用户每次都必须授权。

我了解我无法在 Google API 中更改过期时间。

我的问题是如何保持 oauth 令牌处于活动状态?

我必须使用刷新令牌制作 cron 更新令牌吗?

谢谢,

【问题讨论】:

  • 如果你有刷新 URI,为什么不做谷歌的客户端库所做的——如果过期则尝试刷新,如果没有获得访问权限则引发/重新提示。
  • 谢谢你。您的意思是 Google 客户端库会自动更新令牌?
  • 我用这个库github.com/zquestz/omniauth-google-oauth2 和rails 这意味着客户端库会自动更新令牌与应用程序后台,即使用户很长时间不访问应用程序? > 当访问令牌不再有效时为您处理刷新
  • 这不是 Google 的客户端库之一
  • 如果您有相关的特定语言和客户端库,请考虑将这些标签添加到您的问题中,以帮助您的问题找到正确的受众。

标签: ruby-on-rails ruby google-api google-oauth


【解决方案1】:

我在 java 上找到了关于 auto 的文档

https://developers.google.com/api-client-library/java/google-api-java-client/oauth2

访问令牌的有效期通常为 1 小时,之后 如果你尝试使用它,你会得到一个错误。谷歌凭据 负责自动“刷新”令牌,这意味着 获取新的访问令牌

我想知道 Ruby 也有自动更新功能。

https://developers.google.com/api-client-library/ruby/auth/web-app#exchange-authorization-code

用户授予对请求范围的离线访问权限后,您可以 继续使用 API 客户端访问用户的 Google API 代表用户离线时。客户端对象将刷新 根据需要访问令牌。

【讨论】:

    【解决方案2】:

    最后,我通过 Github 问题得到答案

    https://github.com/googleapis/google-api-ruby-client/issues/719

    【讨论】:

      猜你喜欢
      • 2010-12-10
      • 2015-05-24
      • 2017-07-05
      • 2021-12-27
      • 2023-03-19
      • 2019-03-23
      • 1970-01-01
      • 2012-08-02
      • 2015-09-02
      相关资源
      最近更新 更多