19 lines
1.1 KiB
JavaScript
19 lines
1.1 KiB
JavaScript
const jwt = require('../../Biblioteca/node_modules/jsonwebtoken'); // Importa a biblioteca JSON Web Token
|
|
const { jwtSecret, refreshTokenSecret } = require('../config/configuracao'); // Importa variáveis de configuração
|
|
|
|
const refreshTokens = []; // Array para armazenar tokens de atualização
|
|
|
|
// Controlador para renovar tokens JWT
|
|
const tokenController = (req, res) => {
|
|
const { token } = req.body; // Obtém o token de atualização do corpo da requisição
|
|
if (!token) return res.sendStatus(401); // Se não houver token, retorna erro 401
|
|
if (!refreshTokens.includes(token)) return res.sendStatus(403); // Se o token não estiver na lista, retorna erro 403
|
|
jwt.verify(token, refreshTokenSecret, (err, user) => {
|
|
if (err) return res.sendStatus(403); // Se o token for inválido, retorna erro 403
|
|
const accessToken = jwt.sign({ domain: user.domain }, jwtSecret, { expiresIn: '1h' }); // Gera um novo token de acesso
|
|
res.json({ accessToken }); // Retorna o novo token de acesso
|
|
});
|
|
};
|
|
|
|
module.exports = tokenController; // Exporta o controlador de token para ser
|