Hola,
Estoy teniendo problemas con el identificador de sesión de mi aplicación
en Rails (2.2.2). Necesito en determinado momento guardar un usuario
anónimo en mi base de datos, el cual quiero identificar de manera única
con el id de su sesión. Para ello pongo el siguiente código:
def save_anonymus_user
self.current_user = User.new(:login => “guest” +
session.session_id,
:password => “guest”, :confirm_password => “guest”, :session_id
=> session.session_id)
end
Pero en este punto el session_id vale una cadena muy larga, que no es de
32 caracteres como se supone deberÃa ser:
BAh7CToMY3NyZl9pZCIlYmE1ZWYxNzY3MzUwMjI2MzU0NWFhMWUxODZkZDY4M2U6EXNlYXJjaFN0cmluZyIJbmFkYToPdXBkYXRlZF9hdEl1OglUaW1lDatQG4BQk5jZBjofQG1hcnNoYWxfd2l0aF91dGNfY29lcmNpb25GIgpmbGFzaElDOidBY3Rpb25Db250cm9sbGVyOjpGbGFzaDo6Rmxhc2hIYXNoewAGOgpAdXNlZHsA–206695460a9e840bd0393690e0d8813ee46ce434
Además, controlo la expiración de la sesión con el plugin
session_lifetime, para borrar el usuario anónimo insertado previamente:
expires_session :time => 5.minutes, :redirect_to => ‘/’, :on_expiry =>
lambda {
user = User.find_by_session_id(session.session_id)
User.delete(user.id) unless user.nil?
}
Aquà el session_id sà que es una cadena de 32 caracteres como se supone
que debe ser.
Qué estoy haciendo mal en el momento de la inserción para que el ID de
la sesión sea una cadena tan larga?? Cómo lo puedo solucionar? Existe
algún otro método para hacer lo que estoy intentando?
Muchas gracias.
Thanks!