2010-04-29 7 views
0

Veuillez ne pas mordre mon pour mon malentendu. Les sessions sont très nouvelles pour moi, et j'ai quelques problèmes.Impossible de comprendre les sessions dans Rails

Ok je lis beaucoup d'informations sur les sessions et surtout les sessions de rails. Mais cela ne me donne pas raison d'imaginer des sessions. Ai-je bien compris, lorsque les utilisateurs envoient une requête au serveur (obtenir) -> Serveur crée une nouvelle session (et stocke ce fichier dans le disque dur avec l'identifiant de session), id de session -> est un num? Ainsi, le serveur crée une nouvelle session (et stocke la session sur le disque) après que ce serveur renvoie la réponse au client et place le session_id dans des biscuits?

Ok, je debug des params et voir des résultats:

débogage (session):

{:_csrf_token=>"jeONIfNxFmnpDn/xt6I0icNK1m3EB3CzT9KMntNk7KU=", :session_id=>"06c5628155efaa6446582c491499af6d", "flash"=>{}} 

debug (cookies):

{"remember_user_token"=>"1::3GFRFyXb83lffzwPDPQd", "_blog_session"=>"BAh7CDoQX2NzcmZfdG9rZW4iMWplT05JZk54Rm1ucERuL3h0NkkwaWNOSzFtM0VCM0N6VDlLTW50Tms3S1U9Og9zZXNzaW9uX2lkIiUwNmM1NjI4MTU1ZWZhYTY0NDY1ODJjNDkxNDk5YWY2ZCIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNoSGFzaHsABjoKQHVzZWR7AA==--348c88b594e98f4bf6389d94383134fbe9b03095"} 

Bon, je sais, ce _csrf_token aide à prévenir csrf. session_id -> id de la session stockée sur le disque dur (par défaut)

mais qu'est-ce que _blog_session dans les cookies? aussi, remeber_user_token containes mon id (1 :: *) et qu'en est-il de la deuxième partie, qu'est-ce que c'est?

Désolé pour ces questions stupides, je sais ce que je peux utiliser facilement toutes les auth-plugins (authlogic/clearance/legs), mais je veux comprendre pleinement les sessions.

Merci.

(aussi désolé pour mon anglais, ce n'est pas ma langue maternelle)

Répondre

1

remember_user_token est probablement défini par votre plug-in d'authentification, il est une chaîne cryptée, qui est stockée dans la table des utilisateurs et est utilisé pour l'authentifier. Les détails peuvent varier entre les plugins.

Deuxième partie: vous utilisez probablement magasin de session sur la base des cookies (il est par défaut),

Ainsi, _blog_session stocke vos données de session cryptée. En savoir plus sur les sessions basées sur les cookies here et here.

Le nom "_blog_session" est défini dans config/initializers/session_store.rb

Il ressemble à:

# Your secret key for verifying cookie session data integrity. 
# If you change this key, all old sessions will become invalid! 
# Make sure the secret is at least 30 characters and all random, 
# no regular words or you'll be exposed to dictionary attacks. 
ActionController::Base.session = { 
    :key   => '_blogs_session', 
    :secret  => '07fb6f0d41af4ae06aebb1696fcbb5a5398d4a08570744a4cd53ff237020c43a2022b4041d617d95bcf3f5c4601c7e6c1646eecfc157cc200e7dfedd7d7c6813' 
} 
+0

merci pour ce lien. – vorobey

Questions connexes