Rails google_omniauth2 'ошибка: redirect_uri_mismatch'
Я пытался добавить google auth на свою страницу регистрации и выполнил действия, описанные в руководстве, но после входа в свою учетную запись google меня перенаправляют на localhost:3000/#, и в консоли отображается следующая ошибка:
E, [2018-01-02T18:21:05.351019 #57341] ERROR -- omniauth: (google_oauth2) Authentication failure! invalid_credentials: OAuth2::Error, redirect_uri_mismatch:
{"error": "redirect_uri_mismatch"}
Я перепробовал все решения в этом существующем потоке stackru, но ни одно из этих решений, которые работали для этих пользователей, не работало для меня.
Мой devise.rb:
Devise.setup do |config|
config.stretches = Rails.env.test? ? 1 : 11
config.extend_remember_period = true
config.password_length = 2..72
config.sign_out_all_scopes = false
config.sign_out_via = :get
OmniAuth.config.full_host = Rails.env.production? ?
'http://localhost:3000'
config.omniauth(:facebook,
Rails.application.secrets.facebook_app_id,
Rails.application.secrets.facebook_api_key,
image_size: :large)
config.omniauth(:google_oauth2,
Rails.application.secrets.google_client_id,
Rails.application.secrets.google_client_secret,
{:redirect_uri =>
"http://localhost:3000/users/auth/google_oauth2/callback"}
)
require('devise/orm/active_record')
end
routes.rb
r.devise_for(:users,
only: :omniauth_callbacks,
controllers: {omniauth_callbacks: :omniauth})
Я также добавил следующий uris перенаправления в консоль разработчиков Google:
https://localhost:3000/users/auth/google_oauth2/callback https://localhost:3000/users/auth/google_oauth2/callback/ http://localhost:3000/users/auth/google_oauth2/callback http: // локальный: 3000 / пользователей / аутентификации / google_oauth2 / обратного вызова /
Заранее благодарю за ответы!
1 ответ
Моя проблема появилась только когда :name
опция была добавлена. После удаления это работает очень хорошо, как показано ниже:
config.omniauth :google_oauth2, ENV["GOOGLE_CLIENT_ID"], ENV["GOOGLE_CLIENT_SECRET"], {
:scope => "email, profile",
:prompt => "select_account",
:image_aspect_ratio => "square",
:image_size => 50
}
Надеюсь помочь