我是Nodejs的新手。
参考链接。 https://www.danielgynn.com/build-an-authentication-app-using-express-node-passport/
登录我的个人资料后。 我需要使用auth level访问& read& write数据。
如管理员,用户。之后读取和写入数据。
请根据此链接编码建议我们。
谢谢
答案 0 :(得分:0)
作者提供了一个github存储库示例:https://github.com/danielgynn/express-authentication
对于范围授权,请查看:
一个例子:
router.get('/auth/google', passport.authenticate('google', { scope: ['profile', 'email'] }));
答案 1 :(得分:0)
在目录' routes'中,生成一个新的Javascript文件。它应该有类似的东西:
module.exports.findUser = function(req, res, next){
User.findOne({ 'local.email': req.body.email }, function(err, user) {
if(!user){
res.status(404).send('User with the e-mail address ' + req.body.email + ' is not found');
} else {
res.status(200).send(user);
}
}
}
module.exports.editUser = function(req, res, next){
User.update({ 'local.email': req.body.email }, req.body.newUserObject, function(err) {
if(err){
res.status(500).send('Something went wrong :(');
} else {
res.status(200).send('User successfully updated :)');
}
}
}
对于editUser函数,您应该
如果您想为用户提供角色,例如'管理员,' SectionAdmin',' RegularUser','访客'等等,你应该将它们保存在用户模式中:
var mongoose = require('mongoose');
var bcrypt = require('bcrypt-nodejs');
var userSchema = mongoose.Schema({
local: {
email: String,
password: String,
role: String
},
});
userSchema.methods.generateHash = function(password) {
return bcrypt.hashSync(password, bcrypt.genSaltSync(8), null);
};
userSchema.methods.validPassword = function(password) {
return bcrypt.compareSync(password, this.local.password);
};
module.exports = mongoose.model('User', userSchema);
并检查用户在每一步中的角色。