如何在护照中指定多种策略

时间:2015-09-21 04:10:45

标签: node.js passport.js passport-local

我使用本地护照来验证应用程序。我知道要执行登录

现在我想实现相同的注册

我知道我们可以提供一个名称来区分本地策略

但我不知道如何调用它们

登录:

app.post('/login',
  passport.authenticate('local', {
    successRedirect: '/loginSuccess',
    failureRedirect: '/loginFailure',
      failureFlash: true
  }));

passport.use('login',new LocalStrategy(
    function(username, password, done) {
      process.nextTick(function () {
      });
        UserDetails.findOne({'username':username},
            function(err, user) {

                if (!user) { return done(null, false , { message: 'Incorrect username.' }); }
                if (err) { return done(err); }
                if (user.password != password) { return done(null, false , { message: 'Incorrect password.' }); }
                return done(null, user);
            });
    }
));

app.post('/register',
    passport.authenticate('local', {
        successRedirect: '/loginSuccess',
        failureRedirect: '/loginFailure',
        failureFlash: true
    }));


passport.use('register',new LocalStrategy(
    function(username, password, done) {
        process.nextTick(function () {
        });
        UserDetails.findOne({'username':username},
            function(err, user) {
                if (user) { return done(null, false , { message: 'EmailId Already exits' }); }
                if (err) { return done(err); }
                return done(null, user);
            });
    }
));

我应该在哪里配置登录并注册以相应地采取相应的策略我是一只新的蜜蜂如果有人不理解我的问题请回复

1 个答案:

答案 0 :(得分:0)

更新为不能将代码置于评论中:

请完成本文https://scotch.io/tutorials/easy-node-authentication-setup-and-local

如果您遇到任何问题,请告诉我们。

您可以在终点中定义..请参阅下文.. here / login是您将收到请求的终点,并在函数中执行您的编码以检查用户等,并发送res.json以响应用户

 app.post('/login', 
    passport.authenticate('local', { failureRedirect: '/login' }),
    function(req, res) {
       res.redirect('/');
     });