JSON Web Token (JWT) es un estándar abierto (RFC 7519) que define una forma compacta y autónoma para transmitir de manera segura información entre partes como un objeto JSON. Esta información puede ser verificada y confiada porque está firmada digitalmente. JWTs pueden ser firmados usando un secreto (con el algoritmo HMAC) o un par de claves pública/privada usando RSA o ECDSA.
Los JWT se utilizan comúnmente para la autenticación y el intercambio de información en aplicaciones web. Por ejemplo, después de que un usuario inicia sesión, el servidor puede enviar un JWT al cliente para validar futuras solicitudes del usuario.
Un JWT consta de tres partes: un encabezado que describe el tipo de token y el algoritmo de firma utilizado, una carga útil que contiene las afirmaciones (claims), y una firma para asegurar que el token no haya sido alterado.
Los JWT son ligeros y fáciles de implementar, pueden ser enviados a través de una URL, parámetros POST, o en un encabezado HTTP, y no requieren un almacenamiento de sesión en el servidor, lo que los hace ideales para aplicaciones distribuidas y de microservicios.
Es crucial proteger la clave secreta utilizada para firmar los JWT para prevenir la falsificación de tokens. Además, los tokens no deben contener información sensible sin cifrar y deben tener una expiración adecuada para minimizar el riesgo en caso de que sean interceptados.