Me doy cuenta de que esto lleva años de retraso, pero pensé que podría ampliar la respuesta de Conor y agregar un poco más a la discusión.
¿Alguien puede darme una descripción paso a paso de cómo funciona la autenticación basada en cookies? Nunca he hecho nada relacionado con autenticación o cookies. ¿Qué necesita hacer el navegador? ¿Qué necesita hacer el servidor? ¿En qué orden? ¿Cómo mantenemos las cosas seguras?
Paso 1: Cliente> Registrarse
Antes que nada, el usuario tiene que registrarse. El cliente publica una solicitud HTTP en el servidor que contiene su nombre de usuario y contraseña.
Paso 2: Servidor> Manejo de registro
El servidor recibe esta solicitud y codifica la contraseña antes de almacenar el nombre de usuario y la contraseña en su base de datos. De esta manera, si alguien obtiene acceso a su base de datos, no verá las contraseñas reales de sus usuarios.
Paso 3: Cliente> Inicio de sesión de usuario
Ahora su usuario inicia sesión. Él / ella proporciona su nombre de usuario / contraseña y nuevamente, esto se publica como una solicitud HTTP al servidor.
Paso 4: Servidor> Validar inicio de sesión
El servidor busca el nombre de usuario en la base de datos, codifica la contraseña de inicio de sesión proporcionada y la compara con la contraseña codificada previamente en la base de datos. Si no se cancela, podemos negarles el acceso enviando un código de estado 401 y finalizando la solicitud .
Paso 5: Servidor> Generando token de acceso
Si todo funciona, crearemos un token de acceso, que identifica de forma exclusiva la sesión del usuario. Aún en el servidor, hacemos dos cosas con el token de acceso:
- Almacénelo en la base de datos asociada con ese usuario
- Adjúntelo a una cookie de respuesta que se devolverá al cliente. Asegúrese de establecer una fecha / hora de vencimiento para limitar la sesión del usuario
En adelante, las cookies se adjuntarán a cada solicitud (y respuesta) realizada entre el cliente y el servidor.
Paso 6: Cliente> Hacer solicitudes de página
De vuelta en el lado del cliente, ahora hemos iniciado sesión. Cada vez que el cliente solicita una página que requiere autorización (es decir, necesita iniciar sesión), el servidor obtiene el token de acceso de la cookie y lo compara con el en la base de datos asociada con ese usuario. Si se retira, se otorga acceso.
Esto debería ayudarte a comenzar. ¡Asegúrese de borrar las cookies al cerrar sesión!