Sinatra no persiste mi sesión con una redirección en Chrome. Está creando una sesión completamente nueva y estoy perdiendo todos mis datos de la sesión anterior.Sinatra no persiste sesión con redirección en Chrome
A modo de ejemplo (similar a the Sinatra docs), que estoy haciendo algo como esto:
enable :sessions
get '/foo' do
session[:user_id] = 123
session[:session_id] # "ABC", for example
redirect to('/bar')
end
get '/bar' do
# this is "DEF" when responding to Chrome (wrong),
# but "ABC" when responding to Firefox or Safari (right)
session[:session_id]
# this is nil when responding to Chrome (wrong),
# but 123 when responding to Firefox or Safari (right)
session[:user_id]
end
Estoy pensando que esto tiene algo que ver con cómo los diferentes navegadores responden a la manipulación de la sesión después de una redirección respuesta. ¿Alguien ha visto algo similar a esto, o tiene alguna idea sobre cómo resolver esto mientras sigue usando sesiones?
¡Gracias de antemano!
El manejo de sesión predeterminado en sinatra se realiza con cookies, así que supongo que esto tiene algo que ver con cómo maneja Chrome (o se niega a manejar) las solicitudes de Set-Cookie en los redireccionamientos. No estoy seguro de cómo lidiar con eso, pero una forma simple de resolver todo el problema sería usar sesiones basadas en DB, o en sesiones de memoria con redis o algo similar. – Jonah
¿Cuál es su entorno? Acabo de resolver un problema relacionado con el desaparición del almacenamiento de la sesión que podría ser de interés, pero eso depende de dónde y cómo te está pasando esto. –
Estaba teniendo el mismo problema, usando escenarios como entorno. –