2016-03-05 66 views
3

我有2個站點,前臺和後臺的相同的應用程序。兩個站點都需要不同的條件才能登錄,因爲後臺需要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方法只是讓一個重定向。

我怎樣才能發送前端登錄和後臺登錄到不同的方法?

謝謝!

回答

3

只需在每個策略中使用不同的名稱,並在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); 
+0

我給你的賞金儘快SO允許我這樣做。謝謝 –