我使用节点和Angular 通过JWT生成了令牌,并且无法检查用户是否被授权。
节点:
module.exports.authenticate = function(req, res) {
var user = new User(req.body);
User.findOne({
username: req.body.username
}, function(err, user) {
if (err) throw err;
if (!user) {
res.json({ success: false, message: 'Authentication failed. User not found.' });
}
else if (user) {
if (user.password != req.body.password) {
res.json({ success: false, message: 'Authentication failed. Wrong password.' });
}
else {
var token = jwt.sign(user, config.secret, {
expiresIn: 60*60*24
});
res.json({
success: true,
token: token
});
}
}
});
};
Angular :
$http(req)
.then(function (response) {
console.log(response.data.success);
if(response.data.success) {
var user = localStorage.setItem('token', JSON.stringify(response.data));
token = localStorage.getItem('token');
// console.log('User info: ', JSON.parse(getuser));
// window.location = "/dashboard";
return response.data;
}
}, function (response) {
}
);
}
当我改变路线时如何检查令牌?
一般来说,我如何使用Token?
2条答案
按热度按时间9nvpjoqh1#
Angular ui-router在你改变路由时提供
$routeChangeStart
事件。你可以用下面的方法使用它。您可能需要在此处查看详细的事件文档。
关于更通用的实现,您可以创建一个服务,在登录时或任何时候获得令牌时保存令牌。此后,您可以继续从该服务获得令牌,以便将来进行任何比较。
8ehkhllq2#
您应该安装“cookie解析器”
并转到index.js文件并添加
对我很有效