OmniAuth при использовании области действия стратегии Google oauth 2 - PullRequest
13 голосов
/ 17 декабря 2011

Я работаю над получением календарных данных от Google, используя OmniAuth и стратегию google-oauth-2 .

Если я ничего не добавлю в поле области действияон работает нормально, и я получаю информацию по умолчанию без сообщения авторизации / сбоя, и я могу нормально использовать приложение.

Однако, как только я добавляю область действия, как в примере ниже, я получаю «аутентификацию / сбой»? 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

Есть что-то, что я пропускаю или что-то, что я должен изменить?

Ответы [ 2 ]

23 голосов
/ 20 декабря 2011

В быстром электронном письме от автора стратегии 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
11 голосов
/ 28 декабря 2011

Забавно, это не сработало для меня. Я смог заставить его работать, удалив запятую из области видимости:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...