Я пытаюсь настроить простое приложение Rails с OmniAuth с помощью Google Auth.
При запуске приложения на heroku я получаю следующую ошибку при попытке доступа к маршруту oauth, либо напрямую, либо через перенаправление:
redirect_uri_mismatch
Запрос информации :
access_type=offline
client_id=631910956855-pbglluk1ofb6vjmub9a0fucs8b0r5map.apps.googleusercontent.com
redirect_uri=http://stock-scrapper-rails.herokuapp.com/auth/google_oauth2/callback
response_type=code
scope=email profile
state=94be59d4d241b70c83406ce59c36e7fc8d50279c
Отлично работает локально . Я попытался использовать туннель ngrok, и он также работает.
Полный URL: https://accounts.google.com/o/oauth2/auth?access_type=offline&client_id=631910956855-pbglluk1ofb6vjmub9a0fucs8b0r5map.apps.googleusercontent.com&redirect_uri=https%3A%2F%2Fstock-scrapper-rails.herokuapp.com%2Fauth%2Fgoogle_oauth2%2Fcallback&response_type=code&scope=email+profile&state=ac4cf27b4e2b534d854136ad25a102e2c1ff772d07dc84b8
Мое приложение размещено на http://stock-scrapper-rails.herokuapp.com Вы можете go / auth / google_oauth2, чтобы увидеть ошибку самостоятельно.
Я немного искал, но не смог решить проблему. Вот что я уже пытался / делал, но не решил проблему:
- добавил домен в авторизованные домены
- некоторые ответы на подобные проблемы предлагали подождать, потому что иногда Google требуется некоторое время, чтобы Google обновил изменения в домене. Тем не менее, я ждал уже несколько часов, и ошибка не исчезла
- Дважды / трижды проверил, если мои переменные окружения были правильными на Heroku
- проверил журнал Heroku; там нет ошибок
- настройка OmniAuth.config.full_host вручную
Маршрут обратного вызова:
get '/auth/google_oauth2/callback', to: 'auth#oauth_callback'
Я не использую devise , Кстати. В настоящее время я просто хочу, чтобы контроллер сохранял некоторые данные в сеансе:
class AuthController < ApplicationController
def oauth_callback
authentication_google_data = request.env['omniauth.auth'].except(:extra)
user_email = authentication_google_data['info']['email']
# rest ommited
end
end
Конфигурация OmniAuth:
Rails.application.config.middleware.use OmniAuth::Builder do
provider :google_oauth2, ENV['GOOGLE_CLIENT_ID'], ENV['GOOGLE_CLIENT_SECRET']
end
Соответствующие версии гемов:
- rails ( 6.0.2.1)
- omniauth (1.9.0)
- omniauth-google-oauth2 (0.8.0)
- omniauth-oauth2 (1.6.0)
Также пытался понизить omniauth-oauth до 1.3.1, потому что читал, что была версия, вызывающая похожую проблему, но безуспешно.
Любые другие идеи о том, что я мог бы попробовать, были бы очень полезно:)