Según Persistent Login Cookie Best Practice, nunca se debe permitir que un "Remember Me" contadores a usarse más de una vez:Condición Carrera por "Remember Me" cookies persistentes
Una cookie persistente es bueno para un único inicio de sesión. Cuando se confirma la autenticación, se invalida el número aleatorio utilizado para iniciar sesión y se asigna una nueva cookie. La gestión de sesión estándar maneja las credenciales durante la vida de la sesión, por lo que la cookie recién asignada no se verificará hasta la próxima sesión (en ese momento, también se invalidará después de su uso).
Entonces, ¿cómo se maneja la condición de carrera cuando un usuario visita múltiples URL en su sitio al mismo tiempo? En realidad estoy teniendo este problema ahora.
Digamos que se envían dos solicitudes desde el navegador al servidor al mismo tiempo. Las solicitudes no contienen cookies de sesión, sino la misma cookie "recordarme". Una de las solicitudes se manejará antes que la otra, y recibirá una respuesta con una cookie de sesión autenticada y una cookie regenerada de "recordarme".
El "recuérdame" token en la segunda solicitud está ahora invalidado y otro identificador de sesión se genera en el servidor. Esta solicitud falla, ya que el usuario no puede ser autenticado.
He encontrado algunas posibles soluciones, pero ninguna de ellas parece muy buena. ¿Me estoy perdiendo de algo?
Estoy comenzando a darme cuenta de que el problema se debe a que http es apátrida. Si el token "recordarme" no se invalidara de inmediato, las respuestas seguirían devolviendo sesiones diferentes (y el navegador sobrescribiría las sesiones anteriores con la última). –