¿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?
He estado leyendo sobre diferentes tipos de autenticación y sobre cookies, pero me gustaría una descripción básica de cómo usar los dos juntos. Solo he leído que a menudo se usan juntos, pero no pude encontrar una descripción de cómo hacerlo.
authentication
cookies
browser
Mastid
fuente
fuente
Respuestas:
Una cookie es básicamente solo un elemento en un diccionario. Cada artículo tiene una clave y un valor. Para la autenticación, la clave podría ser algo así como 'nombre de usuario' y el valor sería el nombre de usuario. Cada vez que realiza una solicitud a un sitio web, su navegador incluirá las cookies en la solicitud y el servidor host las comprobará. Entonces, la autenticación se puede hacer automáticamente de esa manera.
Para configurar una cookie, solo tiene que agregarla a la respuesta que el servidor envía después de las solicitudes. El navegador luego agregará la cookie al recibir la respuesta.
Hay diferentes opciones que puede configurar para el lado del servidor de cookies, como los tiempos de caducidad o el cifrado. Una cookie encriptada a menudo se denomina cookie firmada. Básicamente, el servidor cifra la clave y el valor en el elemento del diccionario, por lo que solo el servidor puede hacer uso de la información. Entonces la cookie estaría segura.
Un navegador guardará las cookies establecidas por el servidor. En el encabezado HTTP de cada solicitud que el navegador realiza a ese servidor, agregará las cookies. Solo agregará cookies para los dominios que las establecieron. Example.com puede configurar una cookie y también agregar opciones en el encabezado HTTP para que los navegadores envíen la cookie a subdominios, como sub.ejemplo.com. Sería inaceptable que un navegador envíe cookies a un dominio diferente.
fuente
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.
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:
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!
fuente
Autenticación basada en cookies
La autenticación basada en cookies funciona normalmente en estos 4 pasos:
El navegador enviará este ID de sesión en cada solicitud subsiguiente, el ID de sesión se verificará en la base de datos, en función del sitio web de ID de sesión identificará la sesión que pertenece a qué cliente y luego dará acceso a la solicitud.
Una vez que un usuario cierra sesión en la aplicación, la sesión se destruye tanto del lado del cliente como del lado del servidor.
fuente