Objetivo

Crear un token una vez autenticado el cliente.

¿Qué es un token?

Un token es una credencial digital que se genera del lado del backend y se entrega al frontend. En el frontend, se almacena en localStorage o en una cookie.

¿Por qué se utilizan tokens?

Los tokens se utilizan para autenticar y autorizar a los usuarios en aplicaciones web y móviles. Una vez que el usuario se ha autenticado (generalmente mediante un nombre de usuario y contraseña), el servidor genera un token que se envía al cliente. Este token se adjunta a las solicitudes subsecuentes para verificar la identidad del usuario sin necesidad de reenviar las credenciales.

¿Cómo funciona un flujo típico de autenticación con tokens?

  1. El usuario se autentica: El usuario envía sus credenciales (nombre de usuario y contraseña) al servidor.
  2. Generación del token: El servidor verifica las credenciales y, si son correctas, genera un token.
  3. Envio del token: El servidor envía el token al cliente.
  4. Almacenamiento del token: El cliente almacena el token en localStorage o en una cookie.
  5. Uso del token: El cliente adjunta el token a las cabeceras de las solicitudes posteriores al servidor para acceder a recursos protegidos o también podemos obtener la cookie, sin necesidad de enviar el token por la cabecera de la petición.
  6. Verificación del token: El servidor verifica el token en cada solicitud para asegurarse de que el usuario está autenticado.

Instalación de dependencias

npm i jsonwebtoken

Creación de token

Vamos a crear un archivo jwt.js, en la carpeta utils, si no tienes la carpeta la creamos y agregas el archivo.

|->node_modules
|->src
		|->utils
				|-jwt.js 

Contenido del archivo jwt.js

Importamos los módulos jwt y config: