O Código está correto mas, quando tento acessar minha tela de login, a página me exibe "Unauthorized" e recebo "401" no console do navegador.
module.exports = function(app){
var mongoose = require('mongoose');
var jwt = require('jsonwebtoken');
var api = {};
var model = mongoose.model('Usuario');
api.autentica = function (request,response){
model.findOne({
id: request.body.login,
senha: request.body.senha
})
.then(function(usuario){
if(!usuario){
console.log('Login/senha inválidos');
response.sendStatus(401);
}else{
console.log(usuario.login);
var token = jwt.sign({id: usuario.login}, app.get('secret'),{
expiresIn: 120
});
console.log('Autenticando: token adicionando na resposta');
response.set('x-access-token', token);
response.end();
}
},function(error){
console.log(error);
response.sendStatus(401);
});
};
api.verificaToken = function(request,response, next){
var token = request.headers['x-access-token'];
if(token) {
console.log('Token recebido,decodificando...');
jwt.verify(token, app.get('secret'),function(err,decoded){
if(err){
console.log('Token rejeitado');
response.sendStatus(401);
}
console.log('Token aceito!')
request.usuario = decoded;
next();
});
}else {
console.log('Nenhum token enviado...');
response.sendStatus(401);
}
}
return api;
};