我是一個Nodejs的新手。Nodejs + Passport + MongoDB
請參閱鏈接。 https://www.danielgynn.com/build-an-authentication-app-using-express-node-passport/
我登錄到我的個人資料後。 我需要訪問&讀取&寫入具有auth級別的數據。
如Admin,user。之後讀取和寫入數據。
請根據此鏈接編碼建議我們。
謝謝
我是一個Nodejs的新手。Nodejs + Passport + MongoDB
請參閱鏈接。 https://www.danielgynn.com/build-an-authentication-app-using-express-node-passport/
我登錄到我的個人資料後。 我需要訪問&讀取&寫入具有auth級別的數據。
如Admin,user。之後讀取和寫入數據。
請根據此鏈接編碼建議我們。
謝謝
在目錄'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);
並檢查用戶在每一步中的角色。
筆者提供了一個github上庫例如:https://github.com/danielgynn/express-authentication
對於範圍的授權,來看看:
一個例子:
router.get('/auth/google', passport.authenticate('google', { scope: ['profile', 'email'] }));