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