【问题标题】:Passport.js positive resultPassport.js 阳性结果
【发布时间】:2016-06-05 18:31:28
【问题描述】:

我正在尝试使用 Sequelize 和 Passport 在 Node 应用程序中对用户进行身份验证。我能够访问我的数据库,但似乎无法获得积极的结果。基本上,我有一个简单的前端表单,它接受用户名和密码(使用各自的名称“用户名”和“密码”),然后是以下 Passport 定义:

passport.use(new localStrategy(
  {usernameField: 'email'},
    function(req, email, password, done) {
      models.TeacherX.findOne({ email: email }, function (err, user) {
       if (err) { return done(err); }
       if (!user) { return done(null, false); }
       if (!user.verifyPassword(password)) { return done(null, false); }
        return done(null, user);
       });
    }
));

然后我称之为:

router.post('/login', 
  passport.authenticate('local', { failureRedirect: '/login?msg=failure'}),
    function(req, res) {
      res.redirect("/?msg=positive");
});

【问题讨论】:

    标签: node.js passport.js sequelize.js


    【解决方案1】:

    由于您将请求传递给验证回调,您需要将属性passReqToCallback 设置为true 或从验证回调中删除req 参数。试试这个:

    passport.use(new localStrategy(
      {passReqToCallback: true ,
       usernameField: 'email'},
      function(req, email, password, done) {
          models.TeacherX.findOne({ email: email }, function (err, user) {
           if (err) { return done(err); }
           if (!user) { return done(null, false); }
           if (!user.verifyPassword(password)) { return done(null, false); }
            return done(null, user);
          });
      }
    ));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-01
      • 1970-01-01
      • 2023-04-02
      • 2013-11-23
      • 1970-01-01
      • 1970-01-01
      • 2022-01-17
      • 2017-01-25
      相关资源
      最近更新 更多