Brak omniauth.auth w request przy logowaniu do Google API z użyciem OAuth2.0 w Ruby on Rails[SOLVED]

0

Witam

Jestem świeżakiem w rails'ach i napotkałem problem, z logowaniem do usług google. Mianowicie przy logowaniu nie dostaję w request.env omniauth.auth. Dodam, że powinna istnieć tam taka zmienna. Wszelkie kursy i dokumentacja zakładają zawsze obecność takiej zmiennej tymczasem u mnie jej nie ma.

Fragment Gemfile

gem 'google-api-client', '0.7.1', require: 'google/api_client'
gem 'omniauth', '1.2.1'
gem 'omniauth-google-oauth2', '0.2.4'

config/initializers/omniauth.rb

OmniAuth.config.full_host = 'http://localhost:3000'
Rails.application.config.middleware.use OmniAuth::Builder do
  provider :google_oauth2,
               'CLIENT_ID od googla',
               'CLIENT_SECRET od googla',
               {
                 approval_prompt: 'force',
                 scope: 'https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/calendar',
                 redirect_url: 'http://localhost:3000/auth/google-oauth/callback'
               }
end

Controler

class GoogleAuthController < ApplicationController
  def create
    #request.env['omniauth.auth'] <- zawsze zwraca mi nil
    @auth = request.env['omniauth.auth']
    unless @auth.nil? 
       #export danych do google calendar
    else
       flash[:danger] = 'Error during connection with Google API.'
       redirect_to root_path
    end
  end
end

Włączone odpowiednie API.
user image

Dodam, że nie interesuje mnie łaczenie kont z kontami google (może ew. przechowywać klucz aktualnej sesji googla aby nie musiał sie człowiek 3 razy logowac jak chce exportować dane).

Rails 4.0.4 Ruby 2.0.0p481

Z góry dziękuję za pomoc.
Pozdrawiam

EDIT: Problem rozwiązany.
Zamieniłem w omniauth.rb

{ :access_type => 'offline', :prompt => 'consent', :approval_prompt => 'force', :scope => 'https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/calendar', :redirect_uri => 'http://localhost:3000/auth/google-oauth2/callback', }

na

{ access_type: 'offline', prompt: 'consent', approval_prompt: 'force', scope: 'https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/calendar', }

i zadziałało.

0

Zgodnie z dokumentacją powinno być jeszcze inaczej:

:scope => "email, profile, plus.me, http://gdata.youtube.com"

1 użytkowników online, w tym zalogowanych: 0, gości: 1