簡體   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