fasty-token v3.0.0
Explicação do Funcionamento do Código
O código fornecido consiste em uma implementação básica de geração e verificação de tokens de autenticação usando a biblioteca jsonwebtoken
. Ele inclui as seguintes classes e funções:
Classe ConfigToken
A classe ConfigToken
é uma classe que encapsula as configurações necessárias para gerar e verificar tokens de autenticação. Ela possui os seguintes atributos:
secretKey
: A chave secreta usada para assinar e verificar os tokens.expiresIn
: O tempo de expiração dos tokens.
A classe ConfigToken
também possui um construtor que recebe a chave secreta e o tempo de expiração como parâmetros opcionais. Se o tempo de expiração não for fornecido, o valor padrão será definido como "1d" (um dia).
A classe ConfigToken
tem um método chamado getConfig()
, que retorna um objeto contendo as configurações atuais.
Função generateToken
A função generateToken
é responsável por gerar um token de autenticação com base no usuário, senha e configurações fornecidas. Ela recebe os seguintes parâmetros:
user
: O nome do usuário.password
: A senha do usuário.config
: Uma instância da classeConfigToken
contendo as configurações necessárias.
A função generateToken
extrai a chave secreta e o tempo de expiração das configurações fornecidas. Em seguida, usa a função jwt.sign()
do pacote jsonwebtoken
para criar um token assinado com os dados do usuário e senha fornecidos, usando a chave secreta e o tempo de expiração.
O token gerado é retornado como uma string.
Função verifyToken
A função verifyToken
é responsável por verificar e decodificar um token de autenticação com base nas configurações fornecidas. Ela recebe os seguintes parâmetros:
token
: O token a ser verificado.config
: Uma instância da classeConfigToken
contendo as configurações necessárias.
A função verifyToken
extrai a chave secreta das configurações fornecidas. Em seguida, usa a função jwt.verify()
do pacote jsonwebtoken
para verificar e decodificar o token usando a chave secreta.
Se o token for válido e a verificação for bem-sucedida, a função retorna um objeto contendo as credenciais do usuário (nome de usuário e senha). Caso contrário, retorna null
.
Exportação de Módulos
O código também inclui a exportação dos módulos verifyToken
, generateToken
e ConfigToken
para uso em outros arquivos. Isso permite que essas funções e classes sejam importadas e utilizadas em outros contextos.
// Criando uma instância de ConfigToken com uma chave secreta e tempo de expiração const config = new ConfigToken('chave-secreta', '1h');
// Gerando um token const token = generateToken('usuario123', 'senha456', config);
// Verificando o token const decodedToken = verifyToken(token, config);