por metodo basada autenticación autenticacion authentication cookies browser

authentication - metodo - ¿Cómo funciona la autenticación basada en cookies?



metodo de autenticacion jwt (3)

¿Puede alguien darme una descripción paso a paso de cómo funciona la autenticación basada en cookies? Nunca he hecho nada que implique 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 acerca de los diferentes tipos de autenticación y sobre las cookies, pero me gustaría una descripción básica de cómo usar las dos juntas: solo he leído que a menudo se usan juntas pero no se puede encontrar una descripción de cómo.


Me doy cuenta de que esto es años tarde, pero pensé que podría ampliar la respuesta de Conor y agregar un poco más a la discusión.

¿Puede alguien darme una descripción paso a paso de cómo funciona la autenticación basada en cookies? Nunca he hecho nada que implique 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 debe registrarse. El cliente envía una solicitud HTTP al servidor que contiene su nombre de usuario y contraseña.

Paso 2: Servidor> Manejo de inicio de sesión

El servidor recibe esta solicitud y la codifica antes de guardar el nombre de usuario y la contraseña en su base de datos. De esta forma, si alguien obtiene acceso a su base de datos, no verán las contraseñas reales de sus usuarios.

Paso 3: Cliente> Inicio de sesión de usuario

Ahora su usuario inicia sesión. Proporciona su nombre de usuario / contraseña y, nuevamente, esto se publica como una solicitud HTTP al servidor.

Paso 4: Servidor> Validar el 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 suministrada y la compara con la contraseña previamente codificada en la base de datos. Si no sale, podemos denegarles el acceso enviando un código de estado 401 y finalizando la solicitud .

Paso 5: Servidor> Generar token de acceso

Si todo sale bien, vamos a crear un token de acceso, que identifica de manera única la sesión del usuario. Todavía en el servidor, hacemos dos cosas con el token de acceso:

  1. Almacenarlo en la base de datos asociada con ese usuario
  2. Adjúntelo a una cookie de respuesta que se devolverá al cliente. Asegúrese de establecer una fecha / hora de caducidad para limitar la sesión del usuario

De ahora 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

Volviendo al lado del cliente, ahora estamos conectados. Cada vez que el cliente realiza una solicitud de 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 que está registrado. en la base de datos asociada con ese usuario. Si se retira, se concede acceso.

Esto debería ayudarte a comenzar. Asegúrese de borrar las cookies al cerrar la sesión.


Autenticación basada en cookies

Autenticación basada en cookies funciona normalmente en estos 4 pasos-

  1. El usuario proporciona un nombre de usuario y contraseña en el formulario de inicio de sesión y hace clic en Iniciar sesión.
  2. Después de realizar la solicitud, el servidor valida al usuario en el back-end consultando en la base de datos. Si la solicitud es válida, creará una sesión utilizando la información del usuario obtenida de la base de datos y las almacenará, para cada sesión se creará una ID única llamada ID de sesión, por defecto Id de sesión se le dará al cliente a través del navegador.
  3. El navegador enviará esta identificación de sesión en cada solicitud subsiguiente, la identificación de la sesión se verificará contra la base de datos, en base a esta sesión, el sitio web identificará la sesión que pertenece a cada cliente y luego dará acceso a la solicitud.

  4. Una vez que un usuario cierra sesión en la aplicación, la sesión se destruye tanto en el lado del cliente como en el lado del servidor.


Una cookie es básicamente solo un elemento en un diccionario. Cada elemento 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 de host comprobará las cookies. Entonces la autenticación se puede hacer automáticamente así.

Para configurar una cookie, solo tiene que agregarla a la respuesta que el servidor envía de vuelta después de las solicitudes. El navegador luego agregará la cookie al recibir la respuesta.

Existen diferentes opciones que puede configurar para el lado del servidor de cookies, como los tiempos de caducidad o el cifrado. Una cookie cifrada 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 realiza el navegador a ese servidor, agregará las cookies. Solo agregará cookies para los dominios que las configuran. Example.com puede establecer una cookie y también agregar opciones en el encabezado HTTP para que los navegadores envíen la cookie a los subdominios, como sub.example.com. Sería inaceptable que un navegador alguna vez envíe cookies a un dominio diferente.