[英]OmniAuth using google oauth 2 strategy scope failure
我正在使用OmniAuth和google-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.email
和userinfo.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.