Rails Devise_token_auth invalid_credentials: OAuth2 :: Ошибка - PullRequest
0 голосов
/ 24 апреля 2018

Я строю API для релаксирующих рельсов 5, devise_token_auth и Omniauth, Google Oauth2.

В настоящее время базовое создание учетной записи с помощью электронной почты работает довольно хорошо, сейчас я пытаюсь настроить Аутентификацию с помощью Google, но во время аутентификации я сталкиваюсь с некоторыми ошибками, которые не могу устранить.

Ниже приведена другая ошибка:

Started GET "/omniauth/google_oauth2/callback?state=xxxxx&code=xxxxx" for 127.0.0.1 at 2018-04-24 20:57:55 +0800
I, [2018-04-24T20:57:55.496909 #14173]  INFO -- omniauth: (google_oauth2) Callback phase initiated.
I, [2018-04-24T20:57:56.719943 #14173]  INFO -- omniauth: (google_oauth2) Callback phase initiated.
E, [2018-04-24T20:57:57.074575 #14173] ERROR -- omniauth: (google_oauth2) Authentication failure! invalid_credentials: OAuth2::Error, invalid_grant: Code was already redeemed.
{
  "error" : "invalid_grant",
  "error_description" : "Code was already redeemed."
}
Processing by Devise::OmniauthCallbacksController#failure as HTML
  Parameters: {"state"=>"xxxxxxxx", "code"=>"xxxxxxx"}
Redirected to http://localhost:3000/auth/sign_in

Или

Started GET "/omniauth/google_oauth2/callback?state=xxxxxx&code=xxxxxx" for 127.0.0.1 at 2018-04-24 21:13:46 +0800
I, [2018-04-24T21:13:46.268484 #14173]  INFO -- omniauth: (google_oauth2) Callback phase initiated.
I, [2018-04-24T21:13:47.609079 #14173]  INFO -- omniauth: (google_oauth2) Callback phase initiated.
E, [2018-04-24T21:13:47.978029 #14173] ERROR -- omniauth: (google_oauth2) Authentication failure! invalid_credentials: OAuth2::Error, invalid_grant: Bad Request
{
  "error" : "invalid_grant",
  "error_description" : "Bad Request"
}
Processing by Devise::OmniauthCallbacksController#failure as HTML
  Parameters: {"state"=>"xxxxxx", "code"=>"xxxxxx"}
Redirected to http://localhost:3000/auth/sign_in

Здесь также конфигурация: devise.rb:

  config.omniauth :google_oauth2, 
                  'xxxx.apps.googleusercontent.com',   
                  'client_secret',
                  provider_ignores_state: true,
                  :access_type => 'offline'

omniauth.rb:

Rails.application.config.middleware.use OmniAuth::Builder do
    provider :google_oauth2, 
             'xxxxx.apps.googleusercontent.com',
             'client_secret',
             provider_ignores_state: true,
             :access_type => 'offline'
end

Если у вас есть какое-либо представление о первопричине, не стесняйтесь обновить его,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...