大佬教程收集整理的这篇文章主要介绍了node.js – NodeJS ExpressJS PassportJS – 仅适用于管理员页面,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
.... var passport = require('passport'),LocalStrategy = require('passport-local').Strategy,ensureLoggedIn = require('connect-ensure-login').ensureLoggedIn; var app = express(); ... app.use(passport.initialize()); app.use(passport.session()); ... passport.use(new LocalStrategy({usernameField: 'email',passwordField: 'password'},function(email,password,donE) { User.findOne({ 'email': email,'password': password },{'_id': 1,'email':1},function(err,user) { if (err) { return done(err); } if (!user) { return done(null,false,{ message: 'Incorrect username.' }); } return done(null,user); }); })); passport.serializeUser(function(user,donE) { done(null,user); }); passport.deserializeUser(function(user,donE) { done(null,user); }); app.post('/login',passport.authenticate('local',{ successReturnToOrRedirect: '/home',failureRedirect: '/login' })); app.get('/logout',function(req,res){ req.logout(); res.redirect('/'); });@H_673_5@现在,我想对某些路由添加限制,只能由admin访问.我怎样才能做到这一点?例如/管理/ * @H_673_5@
var scheR_997_11845@a = new mongoose.scheR_997_11845@a({ name: String,email: String,password: String,isAdmin: { type: Boolean,default: false } }); mongoose.model('User',scheR_997_11845@a);@H_673_5@任何提示?谢谢
var ensureLoggedIn = require('connect-ensure-login').ensureLoggedIn; ... var requiresAdmin = function() { return [ ensureLoggedIn('/login'),res,next) { if (req.user && req.user.isAdmin === truE) next(); else res.send(401,'Unauthorized'); } ] }; app.all('/admin/*',requiresAdmin()); app.get('/admin/',...);
以上是大佬教程为你收集整理的node.js – NodeJS ExpressJS PassportJS – 仅适用于管理员页面全部内容,希望文章能够帮你解决node.js – NodeJS ExpressJS PassportJS – 仅适用于管理员页面所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。