Mam problem z używaniem OmniAuth z Railsami 4.0.0.beta1, gdzie wartość sesji ustawiona w SessionsController nie jest zachowywana przez przekierowanie. Próbuję dowiedzieć się, czy jest to coś w moim kodzie, błąd w Rails 4, lub niekompatybilność z gemem OmniAuth. Używam strategii programistycznej OmniAuth.Sesja nie utrzymuje się w przekierowaniu za pomocą OmniAuth i Rails 4
Nie jestem pewien, czy oznacza to nic, ale jeśli mogę umieścić debugera w SessionsController#create
po linii session[:user_id] = user.id
i sprawdzić klasę obiektu sesji, otrzymuję:
ActionController::RequestForgeryProtection::ProtectionMethods::NullSession::NullSessionHash
Jednak gdybym sprawdzać ten sam klasa sesja w innej aplikacji uruchomiony Rails 3.2 uzyskać:
Hash
może OmniAuth nie może obsłużyć obiekt NullSessionHash odpowiednio?
sessions_controller
class SessionsController < ApplicationController
skip_before_filter :authenticate_user!
def create
user = User.find_or_create_by_auth_hash(auth_hash)
session[:user_id] = user.id
redirect_to root_path
end
protected
def auth_hash
request.env['omniauth.auth']
end
end
konfiguracji/inicjalizatory/secret_token.rb
MyApp::Application.config.secret_key_base = 'REMOVED'
konfiguracyjne/inicjalizatory/session_store.rb
MyApp::Application.config.session_store :encrypted_cookie_store, key: '_my_app_session'
Dziękuję bardzo! –