首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Passport.js阳性结果

Passport.js阳性结果
EN

Stack Overflow用户
提问于 2016-02-24 02:48:13
回答 1查看 36关注 0票数 0

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

代码语言:javascript
复制
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);
       });
    }
));

然后我用以下命令调用它:

代码语言:javascript
复制
router.post('/login', 
  passport.authenticate('local', { failureRedirect: '/login?msg=failure'}),
    function(req, res) {
      res.redirect("/?msg=positive");
});
EN

回答 1

Stack Overflow用户

发布于 2016-02-24 05:31:06

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

代码语言:javascript
复制
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);
      });
  }
));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35585702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档