node.js - 带 Passport 的 NodeJS 快速验证器

标签 node.js validation passport.js

我写了一个注册表单表,我使用 passport-local 是可行的,但我想添加 express-validator 来验证我的表单数据。我在路由器上添加验证,这是我的 router/index.js 代码:

/* Handle Registration POST */
router.post('/signup', function(req, res) {
  req.assert('email', 'A valid email is required').isEmail();
  var errors = req.validationErrors();

  if(errors){   //No errors were found.  Passed Validation!
      res.render('register', {
        message: 'Mail type fault',
        errors: errors
      });
  }
  else
  {
    passport.authenticate('signup', {
      successRedirect: '/home',
      failureRedirect: '/signup',
      failureFlash : true
    });
  }
});

验证成功,但如果成功,网页将加载很长时间没有响应。我已经搜索了 Passport 文档,但不知道如何修复它。

这是源代码,它的工作

/* Handle Registration POST */
router.post('/signup', passport.authenticate('signup', {
  successRedirect: '/home',
  failureRedirect: '/signup',
  failureFlash : true
}));

我觉得我可以用jquery来查,但是我没有这么做。因为我只想尝试将验证器与 Passport 一起使用。

最佳答案

将验证码放入 LocalStartegy 应该可以,但我个人会先进行身份验证,一旦通过就使用 Passport 。

考虑以下内容:

router.post('/login',function(req,res){

    req.checkBody('username', 'Username is required').notEmpty();
    req.checkBody('password', 'Password is required').notEmpty();

    //validate 
    var errors = req.validationErrors();

    if (errors) {

        res.render('signup',{user:null,frm_messages:errors});

    }
    else{
        passport.authenticate('login',{
            successRedirect:'/',
            failureRedirect: '/login',
            failureFlash : true  
        })(req,res); // <---- ADDD THIS
    }
});

关于node.js - 带 Passport 的 NodeJS 快速验证器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27056195/

相关文章:

javascript - 使用带有nodejs的服务器发送事件并使用react的问题

javascript - "Sending request"在 Postman 上加载 Get 请求

ruby-on-rails - 不在验证错误消息中包含字段名称

node.js - Passport : Unknown authentication strategy "local"

javascript - 套接字挂断错误与nodejs

node.js - 尝试下载 cordova 插件时出现 ECONNREFUSED 错误

php - SQL 查询中的 sprintf( '%d' , $tainted ) 是漏洞吗?

javascript 复选框验证检查

node.js - PassportJS 和 Facebook Opengraph api 版本 2.0 错误

javascript - 使用 Passport 本地身份验证注册在 Node.js 中不起作用