您好我是nodejs的新手,我想知道如何在nodejs中处理基于角色的用户帐户。
在我的应用程序中,它有两种类型的用户
目前我正在使用护照和护照-jwt对用户进行身份验证,并且它运行良好。
所以现在我想根据用户类型授权API路由,例如可能有一些路由只允许供应商访问。
任何人都可以帮助我吗?按用户类型授权路线的最佳方法是什么?或者有没有办法按用户类型验证用户令牌?
这是我的代码,
router.post('/signup', function(req, res) {
if (!req.body.username || !req.body.password) {
res.json({success: false, msg: 'Please pass username and password.'});
} else {
var newUser = new User({
username: req.body.username,
password: req.body.password
});
// save the user
newUser.save(function(err) {
if (err) {
return res.json({success: false, msg: 'Username already exists.'});
}
res.json({success: true, msg: 'Successful created new user.'});
});
}
});
router.post('/signin', function(req, res) {
User.findOne({
username: req.body.username
}, function(err, user) {
if (err) throw err;
if (!user) {
res.send({success: false, msg: 'Authentication failed. User not found.'});
} else {
// check if password matches
user.comparePassword(req.body.password, function (err, isMatch) {
if (isMatch && !err) {
// if user is found and password is right create a token
var token = jwt.sign(user, config.secret);
// return the information including token as JSON
res.json({success: true, token: 'JWT ' + token});
} else {
res.send({success: false, msg: 'Authentication failed. Wrong password.'});
}
});
}
});
});
router.get('/book', passport.authenticate('jwt', { session: false}), function(req, res) {
res.json("This is it, authorized");
});
由于