Escolar Documentos
Profissional Documentos
Cultura Documentos
// Middleware de autenticação
const authMiddleware = async (req, res, next) => {
const token = req.header('Authorization');
if (!token) {
return res.status(401).send('Acesso não autorizado.');
}
try {
const decoded = jwt.verify(token, 'chave-secreta'); // Use uma chave
secreta mais segura em um ambiente de produção
const user = await User.findById(decoded.userId);
if (!user) {
return res.status(401).send('Usuário não encontrado.');
}
req.user = user;
next();
} catch (error) {
return res.status(401).send('Token inválido.');
}
};
await user.save();
// Rota de login
app.post('/login', async (req, res) => {
const { username, password } = req.body;
// Rota protegida
app.get('/restrito', authMiddleware, (req, res) => {
res.send(`Bem-vindo, ${req.user.username}! Você está em uma rota restrita.`);
});
app.listen(3000, () => {
console.log('Servidor rodando na porta 3000');
});