oauth - español - bearer token vs jwt
¿Cuál es la diferencia entre JWT y Token al portador? (3)
Respuesta corta
Los JWT son una forma conveniente de codificar y verificar reclamos .
Un token de portador es solo una cadena, potencialmente arbitraria, que se utiliza para la autorización.
Contexto (hora del cuento)
Hace unos años, antes de la revolución JWT, un
<token>
era solo una cadena sin significado intrínseco, por ejemplo, 2pWS6RQmdZpE0TQ93X.
Ese token se buscó en una base de datos, que contenía los
reclamos
para ese token.
La desventaja de este enfoque es que se requiere acceso a la base de datos (o un caché) cada vez que se usa el token.
Los JWT
codifican
y
verifican
(mediante la firma) sus propios
reclamos
.
Esto permite a las personas emitir JWT de corta duración que no tienen estado (léase: autocontenido, no dependen de nadie más).
No necesitan golpear el DB.
Esto reduce la carga de DB y simplifica la arquitectura de la aplicación porque solo el servicio que emite los JWT debe preocuparse por golpear la capa de DB / persistencia (el
refresh_token
que probablemente haya encontrado).
Estoy aprendiendo algo sobre Autorización como Basic, Digest, OAuth2.0, JWTs y Bearer Token.
Ahora tengo una pregunta.
Usted sabe que los JWT se están utilizando como Access_Token en el estándar OAuth2.0. Los JWT aparecen en RFC 7519, y el token de portador está en RFC 6750.
Por ejemplo, el Portador:
Authorization: Bearer <token>
Solía enviar token al servidor por AJAX o agregar token a la cadena de consulta de la url. Sé que también se puede enviar un token agregándolo a un encabezado de solicitud. ¿Eso significa que el token debe agregarse al encabezado del portador de autorización?
¿Podría decirme la relación entre los JWT y el token de portador? Muchas gracias.
JWT es un estándar de codificación para tokens que contiene una carga útil de datos JSON que se puede firmar y cifrar.
JWT se puede usar para muchas cosas, entre ellas, los tokens de portador, es decir, una información que puede presentar a algún servicio que, en virtud de que la tenga (siendo el "portador") le otorga acceso a algo.
Los tokens de portador se pueden incluir en una solicitud HTTP de diferentes maneras, uno de ellos (probablemente el preferido) es el encabezado de autorización. Pero también puede ponerlo en un parámetro de solicitud, una cookie o el cuerpo de la solicitud. Eso es principalmente entre usted y el servidor al que está intentando acceder.
Los JWT funcionan con dos tipos de token, token de parámetro: el token de acceso pasa como parámetro. Token de portador: se pasa en el encabezado con ''Bearer''.
Lea también la siguiente pregunta:
¿Qué son los tokens de portador y el tipo de token en OAuth 2?