具有离线访问功能的 Omniauth google oauth2 策略
我正在尝试使用omniauth google-oauth2 策略获取离线访问令牌(refresh_token)。
这是我的omniauth初始化程序代码:
Rails.application.config.middleware.use OmniAuth::Builder do
provider :google_oauth2, KEY, SECRET,
:access_type => 'offline',
:scope => 'https://www.googleapis.com/auth/userinfo.profile'
end
当重定向到google进行oauth2身份验证时,它应该添加一个额外的URL参数,如&access_type=offline,但它失败了(如果我手动添加参数,它工作正常)。
我错过了什么吗?
I'm trying to get offline access token (refresh_token) with omniauth google-oauth2 strategy.
This is my omniauth initializer code:
Rails.application.config.middleware.use OmniAuth::Builder do
provider :google_oauth2, KEY, SECRET,
:access_type => 'offline',
:scope => 'https://www.googleapis.com/auth/userinfo.profile'
end
When redirecting to google for the oauth2 authentication, it should add an extra URL parameter like &access_type=offline, but it fails to do so (it works fine if I add the parameter manually).
Am I missing something?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您将 Omniauth 与 zquestz 的 google_oauth2 策略结合使用,则如果未指定,则 access_type 的默认值为离线。
来自他的 github *omniauth/strategies/oauth2/google_oauth2*:
作为旁注,我相信范围字段应该位于散列中:{ :scope =>;用户信息.个人资料}。
If you are using Omniauth with zquestz's google_oauth2 strategy, then the default value for the access_type is offline if it is not specified.
From his github in *omniauth/strategies/oauth2/google_oauth2*:
As a side note I believe the scope field is supposed to be in a hash: { :scope => userinfo.profile }.
通过将 zquestz/omniauth-google-oauth2 升级到版本 0.1.8 修复了此问题。
显然这个问题只出现在0.1.7中。
Fixed this by upgrading zquestz/omniauth-google-oauth2 to version 0.1.8.
Apparently this problem only occurs in 0.1.7.