OmniAuth с использованием ошибки в области стратегии google oauth 2
Я работаю над получением данных календаря из Google с помощью OmniAuth и стратегии google-oauth-2.
Если я ничего не помещаю в поле области, он отлично работает, и я получаю информацию по умолчанию без сообщения 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
Есть ли что-то, что мне не хватает или что-то, что я должен изменить?
Ответы
Ответ 1
Быстрое электронное письмо от автора стратегии 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
Ответ 2
Смешно, это не сработало для меня.
Я смог заставить его работать, удалив запятую из области:
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