0

J'utilise restful_authentication plugin pour Ruby on Rails. Tout semble bien, sauf qu'il semble que la session utilisateur ne soit pas créée du tout. J'ai la méthode create ci-dessous. Il semble que self.current_user est en cours de définition mais que la session elle-même n'est jamais créée. Quand et comment est-ce que current_user_session est supposé être défini? J'ai la méthode dans mon contrôleur d'application, mais c'est là où il échoue toujours.Restful_authentication plugin ne fonctionne pas

def create 
logout_keeping_session! 
user = User.authenticate(params[:login], params[:password]) 
if user 
    # Protects against session fixation attacks, causes request forgery 
    # protection if user resubmits an earlier form using back 
    # button. Uncomment if you understand the tradeoffs. 
    # reset_session 
    self.current_user = user 
    new_cookie_flag = (params[:remember_me] == "1") 
    handle_remember_cookie! new_cookie_flag 
    redirect_back_or_default('/') 
    flash[:notice] = "Logged in successfully" 
else 
    note_failed_signin 
    @login  = params[:login] 
    @remember_me = params[:remember_me] 
    render :action => 'new' 
end 

fin

Application_Controller

def current_user_session 
    return @current_user_session if defined?(@current_user_session) 
    @current_user_session = UserSession.find 
    end 

    def current_user 
    return @current_user if defined?(@current_user) 
    @current_user = current_user_session && current_user_session.user 
    end 

modèle UserSession est vide

Répondre

0

Quand vous dites session, voulez-vous dire en fait une séance ou est-ce quelque chose de magique restful_authentication? J'avais l'habitude d'utiliser restful_authentication, et certaines applications plus anciennes le font toujours. Cependant, ils ont utilisé la gestion de session basée sur les cookies et non un modèle de session utilisateur.

0

Utilisez-vous les rails 2.3.5?

Je vois des problèmes avec cela en utilisant redirect_to, en supprimant fondamentalement toutes les variables ajoutées à la session avant la redirection.

Revenant semble à 2.3.4 de résoudre mon problème, mais il y a un bug sur le phare en ce qui concerne certaines bizarreries à la session dans des rails 2.3.x

Cela peut ne pas être le même problème pour vous, mais a m'a pris des heures pour réaliser un retour fixé mon problème, donc pourrait valoir un test rapide.

2

N'utilisez pas restful_authentication si vous pouvez l'éviter. Il y a un certain nombre de meilleures alternatives là-bas qui sont en fait RESTful et mieux entretenus:

+0

Devise est en fait construit sur un autre bijou appelé Warden qui est assez impressionnant en soi. –

Questions connexes