64 votes

Trouver l'identifiant de session dans rails 3

Comment puis-je obtenir l'identifiant de session actuel dans rails 3 ?

J'ai essayé ce qui suit sans succès :

session[:session_id]
session['session_id']
session[:id]
session['id']
session.id
session.session_id

141voto

splicer Points 2807

Avez-vous essayé les solutions suivantes ?

request.session_options[:id]

2 votes

Pour moi, cela ressemble à un identifiant de session :)

49 votes

C'est session.id dans Rails 4.

0 votes

Il s'agit d'un changement introduit en rack . Plus d'informations à l'adresse suivante : github.com/rack/rack/pull/342

8voto

whatbird Points 899

Il renvoie également l'identifiant de la session :

session[:session_id]

1 votes

Pas si vous utilisez la protection contre la fixation de session en utilisant la fonction reset_session

4voto

estani Points 1167

Rails 4.0 devrait l'être :

session.id

3voto

equivalent8 Points 2009

Si vous avez besoin de voir les données écrites dans le magasin de session pour un identifiant de session donné à partir de la console Rails, vous pouvez le faire :

a = Rails.application.config.session_store.new(app, Rails.application.config.session_options)
a.class # => ActionDispatch::Session::RedisStore
a.get_session(ENV, '07319b2485be9ac4850664cd47cede38')

# or a.find_session(ENV, '07319b2485be9ac4850664cd47cede38')

app y ENV sont définies lorsque vous démarrez la console rails, il n'est pas nécessaire de les définir.

vous pouvez obtenir le session_id via un plugin de navigateur traitant des cookies ou (inspecteur de cookies, gestionnaire de cookies, ...)

2voto

RinoFM Points 53

Je ne peux pas le tester pour l'instant, mais pour autant que je sache, la variable d'identification de la session est passée de 'id' a 'session_id' sur Rails 3, l'avez-vous essayé ? J'espère que cela fonctionnera pour vous.

0 votes

La variable id a changé de 'id' à 'session_id' sur Rails 3. Que faire pour accéder à l'id de la table ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X