Duda con sesion en rails en distintos tabs del navegador

Hola , tengo una duda acerca de las sesiones y redireccionamiento en
distintos tabs , uso restfulauthentication.

el caso es el siguiente:

  1. El usuario esta logueado, este realiza una accion en la aplicacion
    que le
    envia un correo con un link especifico a un recurso de la aplicacion,
    este
    recurso esta protegido y redirige al login si es que el usuario no ha
    iniciado sesion.

  2. el usuario va a su correo y hace clic en el link , esto abre un nuevo
    tab
    del navegador y este es redirigido al login aunque tenga sesion en el
    otro
    tab, y tiene que loguearse otra vez.

mi duda es si esto se da por el :protect_from_forgery o alguna otra cosa
de
rails o es un comportamiento habitual del navegador

http://localhost:3000/agents/miguel-michelson-martinez/projects/2/invitations
saludos

Atte.
Miguel Michelson Martinez

de acuerdo a la documentación (
ActionController::RequestForgeryProtection::ClassMethods)
sólo se utiliza en las peticiones de formulario y peticiones ajax, pero
no
en las peticiones por GET por lo que no debería afectarle. tampoco
comentas
qué navegador estás utilizando, así que en principio se supone que la
sesión
se mantiene abierta hasta que se cierre totalmente el navegador(en
firefox
aunque sólo tengas la ventana de descargas abierta, se sigue
manteniendo).
desconozco si iexplorer hace lo mismo, pero supongo que será fácil de
comprobar(ve a cualquier sitio que necesite autenticación y abre la
misma
url en una pestaña nueva)
luego está chrome, que se supone que cada pestaña son procesos
totalmente
independientes, así que en este sí que me parecería más normal el
comportamiento que describes

saludos

2009/6/18 Miguel M. [email protected]

On 18/6/09 08:56, Miguel M. wrote:

  1. El usuario esta logueado, este realiza una accion en la aplicacion
    que le envia un correo con un link especifico a un recurso de la
    aplicacion, este recurso esta protegido y redirige al login si es que
    el usuario no ha iniciado sesion.

  2. el usuario va a su correo y hace clic en el link , esto abre un
    nuevo tab del navegador y este es redirigido al login aunque tenga
    sesion en el otro tab, y tiene que loguearse otra vez.

No veo relación con el :protect_from_forgery aquí. De todas formas, es
fácil desactivarlo (temporalmente, no te recomiendo dejarlo así) para
comprobar que no sea ese el problema.

Lo que te está pasando es que la acción que se dispara cuando el usuario
hace clic en el enlace del correo no comprueba correctamente la
existencia de una sesión activa, con lo que te calza incondicionalmente
la redirección al login. No sé si esto tiene que ver con la
implementación del navegador (entiendo que Chrome aunque cada
pestaña sea un proceso distinto de alguna manera todas las pestañas compartirán
la información de sesión de alguna manera)

Para perseguir esto yo pondría un punto de ruptura en la acción de
marras y comprobaría el estado de la sesión del usuario tras hacer clic
en el link.

Saludos.

si , la verdad es que esta raro, muchas gracias Borja , Juan por ayudar

haciendo otras pruebas hago lo siguiente. en Firefox

  1. inicio session

  2. voy al correo y hago click en el enlace del mail , esto me lleva al
    recurso protegido en un nuevo tab del browser que me redirige al login.

  3. me logueo en el tab abierto e inicio sesion

  4. voy al correo otra vez , click en el link y entro correctamente al
    recurso protegido con mi session abierta en el otro tab :stuck_out_tongue:

ahora si que no entiendo nada, según este comportamiento supongo que
puede
ser algo del navegador. ¿ a nadie le ha pasado esto?

saludo

Atte.
Miguel Michelson Martinez

www.artenlinea.com

2009/6/18 Juan L. [email protected]

El 18 de junio de 2009 16:54, Miguel
Michelsongs[email protected]
escribió:

ahora si que no entiendo nada, según este comportamiento supongo que puede
ser algo del navegador. ¿ a nadie le ha pasado esto?

Puede ser que el dominio que hayas usado para loguearte y el dominio
del link del email no sea exactamente el mismo.

Es decir puede que estés usando 127.0.0.1 en un lado y 0.0.0.0 en
otro… o localhost… o algo
así.
La cookie (donde vive la sesión) es por dominio… y alguna vez incluso
por url completa.

f.