0

Я использую gem «omniauth-google-oauth2» в своем приложении, построенном на spree (ruby-on-rails), чтобы интегрировать Google plus на наш сайт. I Я получаю очень странные ошибки здесь, это работает отлично в развитии (LOCALHOST), но в производстве я получаю эту ошибкуНевозможно войти в систему с помощью Google, а также использовать omniauth-google-oauth2

«авториз/google_oauth2/обратного вызова? состояние = 35ad3c2e3f8327a5b96df7ce7e2439a77b90dfebc41f8463 & код = 4/P5L-nug7FU3P8lfnSHNF8Uy_tYXcLyqc0bnABoGo0EI #» ,

Для интеграции Google плюс, я сделал следующее

а.) Я создал WebApplication приложение в консоли разработчика Google, добавив необходимые яваскрипта происхождение и перенаправлять URL,

б.) Я добавил идентификатор клиента, секрет в моем coonfig файле OmniAuth.config.logger = Rails.logger

Rails.application.config.middleware.use OmniAuth :: Builder сделать

поставщик: google_oauth2, «мой Cien т идентификатор»,„секрет“

конец

с.) Я добавил маршрут„авториз/google_oauth2/обратного вызова“

Я действительно ударил здесь для спокойного некоторое время.

+0

Вы добавили служебный url в консоль Google? –

+0

Да Gagan, я добавил его –

ответ

0

Я сделал google-omniauth-oauth2 для довольно многих приложений.

Основываясь на моем опыте, я даю вам несколько советов.

Некоторые из возможных причин может быть

  1. Вы добавили ур производства URL в Google консоли, но, возможно, пропустили обратного вызова URL для производства.
  2. Проверьте маршруты и посмотрите, был ли вы добавлен маршрут обратного вызова. Обычно он должен указывать на метод «сеансы # create» в вашем SessionController.

Попробуйте следующий omniauth.rb

Rails.application.config.middleware.use OmniAuth::Builder do 
    provider :google_oauth2, 'GOOGLE_CLIENT_ID', 'GOOGLE_CLIENT_SECRET 
    { 
     :access_type => 'offline', 
     :prompt => 'consent' 
    } 

Вот мои сеансы # создать метод для справки

def create 
     auth = request.env['omniauth.auth'] 
     @user = User.find_by_email(auth.info.email) || User.create_with_omniauth(auth) 
     if [email protected] 
      @user.country = request.location.country 
     end 
     @user.update_tokens auth 
     reset_session 
     session[:user_id] = @user.id 
     redirect_to new_video_path, :notice => 'Signed In!' 
    end 

Для получения дополнительной помощи проверки this ссылки.

+0

Спасибо за ваш ответ Vipul, Я проверил пункты 1 и 2, и соответствующим образом изменить свой файл omniauth.rb Но я получаю ту же ошибку авториз/google_oauth2/обратного вызова? Состояние = 94fef1d37b059a495f93ad5901f0499ea250dc903f7ed6fd & код = 4/8KmdToVb86NMLIAjB_yTXWM9TagJ8vAktQuWzIK7Dg0 # –

+0

@ShakthiSadras Я только что просмотрел вашу ошибку и попробовал ее в своем приложении. Это не ошибка, которую вы получаете. после создания сеанса вам нужно направить пользователя на какую-то страницу, чего вы, похоже, не делаете. В конце вашего метода «session # create» просто поставьте redirect_to some_path.например, root_path. –

+0

@ShakthiSadras Я отредактировал свой ответ. обратитесь к последней строке, и ошибка будет идти. –