Biblioteca `JWT` da Azion

A biblioteca JWT da Azion fornece funções utilitárias para assinar, verificar e decodificar JSON Web Tokens (JWTs). Essa biblioteca garante facilidade de uso e segurança ao lidar com JWTs em aplicações web.

Saiba mais das Azion Libraries

Uso

sign

Assina um payload JWT com o algoritmo e chave privada especificados.

Exemplo:

import { sign } from 'azion/jwt';
import type { JWTPayload } from 'azion/jwt';
const privateKey: string = 'your-private-key';
const payload: JWTPayload = { userId: 123, exp: Math.floor(Date.now() / 1000) + 3600 }; // Expiração em 1 hora
sign(payload, privateKey).then((token: string) => console.log(token)); // Exibe o JWT assinado

Parâmetros:

ParâmetroTipoDescrição
payloadJWTPayloadO payload a ser assinado.
privateKeySignatureKeyA chave privada usada para assinar.
algSignatureAlgorithmO algoritmo a ser usado para assinar. Padrão: 'HS256'.

Retorno:

Tipo de retornoDescrição
Promise<string>O JWT assinado.

verify

Verifica um JWT usando a chave pública e algoritmo especificados.

Exemplo:

import { verify } from 'azion/jwt';
import type { JWTPayload } from 'azion/jwt';
const publicKey: string = 'your-public-key';
const token: string = 'your-jwt-token';
verify(token, publicKey)
.then((payload: JWTPayload) => console.log(payload))
.catch((err) => console.error(err)); // Exibe o payload se a verificação for bem-sucedida

Parâmetros:

ParâmetroTipoDescrição
tokenstringO JWT a ser verificado.
publicKeySignatureKeyA chave pública usada para verificação.
algSignatureAlgorithm (opcional)O algoritmo a ser usado para a verificação. Padrão: 'HS256'.

Retorno:

Tipo de retornoDescrição
Promise<JWTPayload>O payload decodificado se o token for válido.

decode

Decodifica um JWT sem verificar a assinatura.

import { decode } from 'azion/jwt';
import type { JWTPayload, TokenHeader } from 'azion/jwt';
const token: string = 'your-jwt-token';
const { header, payload }: { header: TokenHeader; payload: JWTPayload } = decode(token);
console.log(header, payload); // Exibe o cabeçalho e payload decodificados

Parâmetros:

ParâmetroTipoDescrição
tokenstringO JWT a ser decodificado.

Retorno:

Tipo de retornoDescrição
{ header: TokenHeader; payload: JWTPayload }O cabeçalho e payload decodificados.

Tipos

Os seguintes tipos definem a estrutura dos dados usados na biblioteca JWT.

JWTPayload

Define a estrutura do payload do JWT.

type JWTPayload = {
[key: string]: unknown;
exp?: number;
nbf?: number;
iat?: number;
};

Parâmetros:

ParâmetroTipoDescrição
keystringUm par chave-valor personalizado no payload.
expnumberO tempo de expiração do token, em segundos.
nbfnumberO tempo antes do qual o token não é válido.
iatnumberO tempo em que o token foi emitido, em segundos.

TokenHeader

Define a estrutura do cabeçalho do JWT.

interface TokenHeader {
alg: SignatureAlgorithm;
typ?: 'JWT';
}

Parâmetros:

ParâmetroTipoDescrição
algSignatureAlgorithmO algoritmo usado para assinar o JWT.
typstring (opcional)O tipo do token, tipicamente ‘JWT’.

Erros

Estes são os tipos de erros que podem ser retornados pelos métodos da biblioteca.

JwtAlgorithmNotImplemented

Lançado quando um algoritmo não está implementado.

JwtTokenInvalid

Lançado quando um JWT é inválido.

JwtTokenNotBefore

Lançado quando um JWT é usado antes do seu claim nbf.

JwtTokenExpired

Lançado quando um JWT expirou.

JwtTokenIssuedAt

Lançado quando um claim iat de um JWT está no futuro.

JwtHeaderInvalid

Lançado quando um cabeçalho de JWT é inválido.

JwtTokenSignatureMismatched

Lançado quando a assinatura de um JWT não corresponde.


Contribuidores