如何使用两个LocalStrategy?

时间:2013-01-04 14:59:58

标签: node.js passport.js

如何使用两个LocalStrategy,一个用于前端身份验证,另一个用于后端身份验证?

// font end
passport.use(new LocalStrategy({
    usernameField: 'email',
    passwordField: 'password'
}), function (email, password, done) {
    User.findOne({email: email}, function(err, user) {
        // ...
        done(null, user);
    });
});

// back end
passport.use(new LocalStrategy({
    usernameField: 'username',
    passwordField: 'password'
}, function (username, password, done) {
    SysUser.findOne({username: username}, function(err, user) {
        // ...
        done(null, user);
    });        
}));

1 个答案:

答案 0 :(得分:0)

我认为你可以这样做:

// frontend
passport.use('frontend-local', new LocalStrategy({
  ....
});

//backend
passport.use('backend-local', new LocalStrategy({
  ....
});

然后,无论您想在一条路线中使用一种策略,只需将其称为:

app.post('/frontend/login',
  passport.authenticate('frontend-local'),
  ...

和后端类似。