Security - Yorbre25/P3SOA_MY_microRESTaurant GitHub Wiki

JSON Web Token (JWT)

JSON Web Tokens (JWT) son una forma compacta y autónoma de transmitir información de forma segura entre partes como un objeto JSON. Esta información puede ser verificada y confiable ya que está firmada digitalmente, utilizando un algoritmo de cifrado (normalmente HMAC o RSA). Los JWT son comúnmente utilizados en autenticación y autorización, permitiendo que las aplicaciones web mantengan sesiones de usuario de una manera eficiente y sin necesidad de almacenamiento del estado en el servidor. Un token JWT se compone de tres partes: el encabezado, la carga útil y la firma, separadas por puntos (header.payload.signature), y suelen ser transmitidos en los encabezados HTTP bajo el esquema "Bearer".

En el contexto de autenticación, cuando un usuario inicia sesión con sus credenciales, el servidor genera un JWT y se lo entrega al cliente. Este token es entonces enviado por el cliente en cada solicitud posterior, permitiendo al servidor validar la identidad del usuario y autorizar el acceso a recursos específicos.

En este caso ciframos el rol del usuario (si es admin), su nombre, correo, entre otros. Para cualquier solicitud que pueda resultar comprometedora, como por ejemplo, reservar un cita o ascender un usuario a admin. Se envia el token al backend por medio del header para verificar si la petición es válida.