我在用户登录时创建了一个令牌。我正在使用jwt-simple
模块。我正在关注this教程。这是我的登录代码。
apiRoutes.put('/login', function(req, res, next){
User.findOne({email:req.body.email}, function(err, user){
bcrypt.compare(req.body.password, user.password, function(err, result){
if(result){
var token=jwt.encode(user,config.secret);
return res.json({success: true, token: 'JWT'+ token});
}else{
return res.json("Incorrect Email and Password")
}
})
})
});
我正在/dashboard
路线验证用户:
apiRoutes.get('/dashboard', passport.authenticate('jwt', { session: false}),function(req, res) {
var token=getToken(req.headers);
if(token){
var decode=jwt.decode(token, config.secret);
req.userId = decode.name;
User.findOne({name:decode.name}, function(err, user){
if(err){res.json(err)}
if(!user){
return res.status(403).send({success:false, msg:'Authentication Failed'})
}else{
res.json({success:true, msg:'Welcome in the Area' +user.name+'!'})
}
})
}else{
return res.status(403).send({success:false, msg:'No Token Found'})
}
});
getToken = function (head) {
if (head && head.authorization) {
var parted = head.authorization.split(' ');
if (parted.length === 2) {
console.log(parted[1]);
return parted[1];
} else {
return null;
}
} else {
return null;
}
};
当我在/dashboard
中点击postman
api时,输出仅为unauthorized
。当我删除passport.authenticate('jwt', { session: false}),
时,输出为{success:false, msg:'No Token Found'}
。
我用Google搜索,但没有找到任何解决方案。
请帮帮我...请帮助我们。
感谢