J'essaie de créer une session explicitement comme ceci UserSession.create(@user, true)
mais la session n'est pas créée, current_user
est nil
.authlogic UserSession.create (@user) donnant un enregistrement non autorisé
Mais quand je fais cela, je reçois < #UserSession: {: unauthorized_record => ""}>
us = UserSession.create(@user, true)
RAILS_DEFAULT_LOGGER.info(us.inspect) #=> UserSession: {:unauthorized_record=>""}
J'ai regardé Authlogic::Session::UnauthorizedRecord ici il dit
Soyez prudent avec car Authlogic suppose que vous avez déjà confirmé que l'utilisateur est ce qu'il dit être. Par exemple, c'est la méthode utilisée pour persister la session en interne. Authlogic trouve l'utilisateur avec le jeton de persistance. À ce stade, nous savons que l'utilisateur est ce qu'il dit être, alors Authlogic crée simplement une session avec le dossier. Ceci est particulièrement utile pour les méthodes d'authentification tierces, telles que OpenID. Laissez cette méthode vérifier l'identité, une fois qu'elle est vérifiée, passez l'objet et créez une session.
ce qui est exactement ce que j'essaie de faire (je m'authentifie en utilisant omniauth et en créant une session en utilisant authlogic).
Comment résoudre ce problème, afin que je puisse obtenir une session valide dans current_user
?
J'ai trouvé votre question tout en éprouvant le même problème. J'ai trouvé que vous avez probablement _do_ avoir un current_user valide mais pas accessible comme vous le pensez. Consultez ma réponse sur cette autre question similaire: http://stackoverflow.com/questions/6638927/usersession-unauthorized-record-protected/33636110#33636110 – Aaron