【问题标题】:how to specify multiple strategy in passport如何在护照中指定多个策略
【发布时间】:2015-09-21 16:56:44
【问题描述】:

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

现在我想实现相同的注册

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

但我不知道如何调用它们

登录:

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);
            });
    }
));

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

【问题讨论】:

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


    【解决方案1】:

    更新为不能在注释中放代码:

    请看这篇文章https://scotch.io/tutorials/easy-node-authentication-setup-and-local

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

    您可以在端点中定义它..见下文..这里 /login 是您将接收请求的端点,并在功能中进行编码以检查用户等并发送 res.json 并响应用户.

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

    【讨论】:

    • 感谢示例中的回复指出,注册和登录策略的名称有本地登录和本地注册然后如何根据用户操作使用特定策略,对不起,我仍然不是得到我应该在哪里配置
    • 请告诉我如何在 html 视图而不是玉视图中显示 flash 消息
    • 您可以使用很多模块,例如npmjs.com/package/flash-messages..
    • 你已经定义了你的端点..见下文..这里'/login'是你的端点,你将接收你的请求,并在函数中为检查用户等进行编码并发送资源。 json 响应用户。 app.post('/login', passport.authenticate('local', { failureRedirect: '/login' }), function(req, res) { res.redirect('/'); });
    • 谢谢我添加了它,但我采取的任何行动总是指向失败链接 app.post('/login', passport.authenticate('login', { successRedirect: '/loginSuccess' , failureRedirect: '/loginFailure', failureFlash: true })); app.post('/register', passport.authenticate('register', { successRedirect: '/registerSuccess', failureRedirect: '/registerFailure', failureFlash: true }));
    猜你喜欢
    • 2021-05-12
    • 1970-01-01
    • 2019-05-09
    • 2022-08-12
    • 2012-06-09
    • 2021-06-20
    • 2015-11-14
    • 1970-01-01
    • 2015-03-20
    相关资源
    最近更新 更多