繁体   English   中英

使用Google OAuth 2策略范围的OmniAuth失败

[英]OmniAuth using google oauth 2 strategy scope failure

我正在使用OmniAuthgoogle-oauth-2策略从Google获取日历数据。

如果我在scope字段中未添加任何内容,则可以正常工作,并且我得到的默认信息中没有auth / failure消息,并且我可以正常使用该应用程序。

但是,当我添加范围时,如下面的示例所示,我得到一个“ auth / failure?message = invalid_credentials”。

Rails.application.config.middleware.use OmniAuth::Builder do
    provider :google_oauth2, ENV['TEST_KEY'], ENV['TEST_SECRET'], { :scope => 'https://www.google.com/calendar/feeds/' }
end

有什么我想念的东西还是应该改变的东西?

google-oauth-2策略作者的一封快速电子邮件指出了以下内容:

如果不包括配置文件范围,它将无法通过身份验证。

通过将userinfo.emailuserinfo.profile (以及日历范围)添加到以逗号分隔的:scope列表中,我可以解决此问题。

例:

Rails.application.config.middleware.use OmniAuth::Builder do
    provider :google_oauth2, ENV['TEST_KEY'], ENV['TEST_SECRET'], 
           { :scope => 'userinfo.email, userinfo.profile, https://www.googleapis.com/auth/calendar' }
end

好笑,这对我没用。 我能够使其工作,并从范围中删除了逗号:

Rails.application.config.middleware.use OmniAuth::Builder do
    provider :google_oauth2, ENV['TEST_KEY'], ENV['TEST_SECRET'], 
    { :scope => 'https://www.googleapis.com/auth/docs https://www.googleapis.com/auth/userinfo.profile' }
end

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM