2009-03-08 30 views
5

Dans mon application Rails, j'ai une page de connexion. Après que cette personne se connecte, quel est le meilleur moyen pour mon application de continuer à suivre la personne qui s'est connectée? Par exemple, si l'utilisateur se déplace sur des pages différentes, mes contrôleurs/actions perdront la trace de cet utilisateur. variable entre chaque page que l'utilisateur visite ensuite. Existe-t-il une meilleure façon de le faire? Dois-je utiliser la variable sessions?Rails: suivi de l'ID d'un utilisateur

Répondre

7

Oui, les sessions sont exactement ce que vous cherchez.

session["user_id"] = user_id 

et iront chercher l'utilisateur en cours sur une autre page (si votre modèle est appelé User):

@current_user = User.find(session["user_id]") 
+0

Gardez à l'esprit que si vous utilisez des sessions basées sur les cookies, qui est par défaut, je pense que dans rails 2.1+ que ces données pourraient être modifiées pour changer qui est connecté. – Tilendor

+2

En fait, le cookie a une empreinte digitale SHA512 basée sur vous r Clé secrète de l'application assurant la non altération des données. Cela signifie cependant que le contenu des cookies est disponible côté client, évitez donc de stocker des données sensibles (mots de passe, etc.), sauf si vous passez à un magasin côté serveur. – Palm

4

envisager sérieusement un plugin pour gérer cela. Il existe plusieurs, tels que restful authentication. Ceci donne les fonctionnalités current_user et logged_in?.