我对两个站点(前台站点和后台)有相同的应用程序。两个站点都需要不同的登录条件,因为后台需要将 is_admin 值设置为“true”。
这是我的登录方法
module.exports.verifyCredentials = function (username, password, done) {
mongoose.model("User").findOne({password:password, username:username, is_admin:true}, function(err, user) {
done(err, user);
});
};
这是在我的 app.js 中
passport.use(new passportLocal.Strategy(securityCtl.verifyCredentials));
app.post("/administracion/login", passport.authenticate('local'), securityCtl.doLogin);
doLogin 方法只是进行重定向。
如何将前台登录和后台登录发送到不同的方法?
Thanks!
只需在每个策略中使用不同的名称,并在策略中通过它们的名称来引用它们passport.authenticate
方法。现在您可以指定不同的方法(verifyFrontSiteCredentials
对于前端站点和verifyBackOfficeCredentials
每个策略中分别针对后台)。像这样的事情:
app.js
// front-site strategy
passport.use('front-site', new passportLocal.Strategy(securityCtl.verifyFrontSiteCredentials));
app.post("/administracion/front-site/login", passport.authenticate('front-site'), securityCtl.doLogin);
// backoffice strategy
passport.use('backoffice', new passportLocal.Strategy(securityCtl.verifyBackOfficeCredentials));
app.post("/administracion/backoffice/login", passport.authenticate('backoffice'), securityCtl.doLogin);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)