google oauth refresh token 长寿命解决方案

Posted

技术标签:

【中文标题】google oauth refresh token 长寿命解决方案【英文标题】:google oauth refresh token long lived solutions 【发布时间】:2016-02-23 02:00:59 【问题描述】:

Google OAuth 2.0 访问令牌有一个到期时间。我已将 Google Calendar API 集成到我的 Ruby 应用程序中,但问题是访问令牌即将到期。如何使访问令牌长寿命。

cal.login_with_refresh_token('ksdjkf_sdfkasdhfjhaskjdhfkasdhfkasjdlfasld')

"access_token" => "ksdjkf_sdfkasdhfjhaskjdhfkasdhfkasjdlfasld",

"token_type" => "承载者",

"expires_in" => 2324

如何使它成为一个长期存在的事件,这意味着除非他从他的 Google 帐户撤消访问权限,否则用户可以获取他的日历事件。

【问题讨论】:

@DaImTo 做出更正谢谢 请求离线访问以获取刷新令牌,并使用刷新令牌获取新的访问令牌。抱歉,我不能帮助 Ruby。 @DaImTo 你没有回答这个问题。我有同样的问题。 Use the refresh token to get a new access token 相当模糊,没有显示任何示例。您能否详细说明这是如何完成的。我知道必须有某种 API 来允许静默令牌刷新,而不会在令牌过期时强制用户重新进行身份验证。我的用例是 NodeJS,我正在使用 Google OAUTH NodeJS 库。 @user15155716 您正在评论一个已有六年历史的问题。我不是 ruby​​ 开发人员,所以我不能给你任何关于 ruby​​ 的帮助。您应该尝试搜索Ruby sample 客户端库有很多示例。事实是,如果设置正确,客户端库应该为您处理所有刷新。 【参考方案1】:

以下是为 Google API 创建长期 OAuth 令牌的方法:

    访问http://console.developers.google.com API 管理器 凭据 创建凭据(OAuth 客户端 ID) 应用程序类型:Web 应用程序 授权重定向 URI:https://developers.google.com/oauthplayground 生成的客户端 ID/客户端密码用于您的访问令牌 访问:https://developers.google.com/oauthplayground/ 单击设置图标以显示 OAuth 2.0 配置 勾选“使用您自己的 OAuth 凭据” 输入您刚刚创建的 OAuth 客户端 ID 和 OAuth 客户端密码 检查范围字段中的“Calendar API v3”条目,然后单击“授权 API” 点击“允许” 点击“交换令牌授权码” 现在您的客户端 ID/密码拥有一个刷新令牌和访问令牌

这是一个使用带有 ruby-api-client gem 的 oauth 令牌通过 signet 与 Google Play API 对话的示例。您应该能够修改此示例以非常轻松地使用日历 API:

https://gist.github.com/jkotchoff/e60fdf048ec443272045

请注意,此内容的灵感来自:https://www.youtube.com/watch?v=hfWe1gPCnzc

【讨论】:

以上是关于google oauth refresh token 长寿命解决方案的主要内容,如果未能解决你的问题,请参考以下文章

google oauth2:为 Web 服务器应用程序上的授权用户重新获取 refresh_token

googleapis oauth2 令牌 API 未返回 refresh_token

#yyds干货盘点#oauth2 授权服务器相关表的作用

【Google pay接入】获取refresh_token

如何刷新存储的 Google oAuth 凭据

带有刷新令牌的 Spring Google OAuth2