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 classeConfigTokencontendo 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 classeConfigTokencontendo 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);