#jwt
Este tipo de helper tiene como utilidad generar un JWT basado en los valores de ingreso a través de payload, privateKey y options.
Habitualmente usarás este JWT se utilizará en las cabeceras o headers de la solicitud Webhooks.
Se recomienda, entregar payload, privateKey y options como secretos en vez de basados en body.
Es probable que en el editor de Webhooks no sea posible visualizar en vivo un JWT válido, debido a las limitantes criptográficas.
Modo de uso
Para generar un JWT se requieren tres componentes principales cada uno de ellos con sus propias opciones dependiendo de tus necesidades. El contenido del helper debe ser un JSON válido, es decir, sus keys/claves deben contener doble comilla, no puede ser un Object.
{{#jwt}}
{
"payload": (String|JSON),
"privateKey": String,
"options": JSON
}
{{/jwt}}Modos de generación
Dependiendo de tu necesidad te sugerimos dos modos con el que podrás usar este helper.
En el modo dinámico es cuando requieres que los valores del payload u options se generen en base a los datos dinámicos.
Y más recomendado, el modo estático que te permitiría generar JWT sin necesidad de ingresar datos dinámicos, ya que la expiración puede quedar configurada como relativa.
{{#jwt}}
{
"payload": {
"user": {{parser agent._id}}
},
"privateKey": {{ secrets.privateKey }},
"options": {
"expiresIn": "1m"
}
}
{{/jwt}}{{#jwt secrets.jwtOptions }}{{/jwt}}Configuración
payload
payloadEl payload es el contenido (visible) que desees que vaya en el JWT, que puede ser un String o bien un Object.
No ingreses secretos en este campo ya que son visibles al momento de decodificar un JWT.
{{#jwt}}
{
"payload": { "user": {{parser agent._id}} },
...
}
{{/jwt}}privateKey
privateKeyEl privateKey es el secreto con el cual se firmará el JWT. El tipo de dato debe ser solo un String.
{{#jwt}}
{
"privateKey": "..."
}
{{/jwt}}options
optionsLas opciones para generar un JWT son variadas, dependiendo de tu necesidad. Puedes leer los campos estándares usados en un JWT aquí.
Escoge los valores de cada opción siempre con la seguridad como primera prioridad.
algorithm
algorithmAlgoritmo a usar para cifrar el JWT. Los valores disponibles son HS256, HS384, HS512, RS256, RS384, RS512, ES256, ES384, ES512, RS256, RS384, RS512. El valor por defecto es HS256.
{ "algorithm": "HS256" }audience
audienceDentifica a los destinatarios para los que está destinado el JWT. Debe ser de tipo String.
{ "audience": "..." }subject
subjectIdentifica el tema del JWT. Debe ser de tipo String.
{ "subject": "..." }issuer
issuerIdentifica el sujeto que emitió el JWT. Debe ser de tipo String.
{ "issuer": "..." }header
headerEste campo puede sobreescribir el valor del algoritmo.
Identifica qué algoritmo se utiliza para generar la firma. Debe ser de tipo JSON. Los valores del JSON deben ser alg y typ.
{ "alg": "HS256", "typ": "JWT" }jwtid
jwtidIdentificador único del token que distingue entre mayúsculas y minúsculas, incluso entre diferentes emisores.
{ "jwtid": "..." }expiresIn
expiresInIdentifica el tiempo de vencimiento a partir del cual el JWT no debe aceptarse para su procesamiento. Debe ser de tipo String, bajo el siguiente formato:
milisegundos:
800mso800 millisecondssegundos:
5so5 secondsminutos:
5mo5 minuteshoras:
1ho1 hoursdías:
2do2 dayssemanas:
1wo1 weekmeses:
2moo2 monthsaño:
1yo1 year
{ "expiresIn": "5s" }notBefore
notBeforeIdentifica la hora en la que el JWT comenzará a ser aceptado para su procesamiento.
El formato es equivalente a como funciona para expiresIn.
{ "notBefore": "1s" }Sugerimos no utilizar esta opción ya que puede provocar errores en la autenticación.
Última actualización
¿Te fue útil?

