java - libreria - jwt php
¿Cuál es la diferencia entre JSON Web Signature(JWS) y JSON Web Token(JWT)? (1)
He estado codificando un servicio RESTful en Java. Esto es lo que he entendido hasta ahora (corríjanme si estoy equivocado):
La autorización de tokens se realiza utilizando JSON Web Tokens (JWT) que tiene tres partes: el encabezado, la carga útil y el secreto (compartido entre el cliente y el servidor).
Entendí este concepto y tropecé con JSON Web Signature (JWS) mientras leía sobre JWT.
JWS también es una entidad codificada similar a JWT que tiene un encabezado, una carga útil y un secreto compartido.
Pregunta: ¿Cuál es la diferencia entre los dos conceptos, a saber, JWT y JWS? Y si se parecen técnicamente, ¿cuál es la diferencia en su implementación ?
Esta es la primera vez que estoy trabajando con autenticación basada en tokens, por lo que es posible que haya entendido mal el concepto por completo.
PD: aprendí sobre JWS mientras navego por los ejemplos en este sitio web .
JWT realmente usa JWS para su firma, desde la especificación:
JSON Web Token (JWT) es un medio compacto y seguro de URL para representar reclamos que se transfieren entre dos partes. Las notificaciones en un JWT están codificadas como un objeto JavaScript Object Notation (JSON) que se utiliza como la carga útil de una estructura JSON Web Signature (JWS) o como texto sin formato de una estructura JSON Web Encryption (JWE), lo que permite firmado digitalmente o MACed y / o encriptado.
Entonces, un JWT es una estructura JWS con un objeto JSON como carga útil. Se han definido algunas claves (o reclamos) opcionales, como iss
, aud
, exp
, etc.
Esto también significa que su protección de integridad no se limita a los secretos compartidos, sino que también se puede usar la criptografía de clave pública / privada.