Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js bcrypt登录在本地主机上工作时在生产环境中不工作_Node.js_Bcrypt_Passport Local - Fatal编程技术网

Node.js bcrypt登录在本地主机上工作时在生产环境中不工作

Node.js bcrypt登录在本地主机上工作时在生产环境中不工作,node.js,bcrypt,passport-local,Node.js,Bcrypt,Passport Local,我使用的用户模型如下所示: usermodel使用bcrypt身份验证,在本地主机上运行良好。 在生产中,注册工作正常,用户在注册时可以登录。但是,在登录时会出现错误“用户名或密码错误” 在本地主机中,bcrypt登录正常工作。然而,在digitalocean和digitalocean的制作中,登录总是给出不正确的电子邮件或密码 router.post('/login', function(req, res, next) { console.log(req); passport.au

我使用的用户模型如下所示: usermodel使用bcrypt身份验证,在本地主机上运行良好。 在生产中,注册工作正常,用户在注册时可以登录。但是,在登录时会出现错误“用户名或密码错误”

在本地主机中,bcrypt登录正常工作。然而,在digitalocean和digitalocean的制作中,登录总是给出不正确的电子邮件或密码

router.post('/login', function(req, res, next) {
    console.log(req);
  passport.authenticate('local', function(err, user, info) {
    if (err) return next(err)
    if (!user) {
        //console.log(user);
        req.flash("error", "Either Username or Password is wrong");
      return res.redirect('/login');
    }
    req.logIn(user, function(err) {
      if (err) return next(err);

      {
        //console.log(user);
        req.flash("success","Successfully logged in as " + user.username);
        res.redirect('/coaching');
    }
    });
  })(req, res, next);
});

请提供帮助,说明为什么在生产中特定的逻辑不起作用

日志会说什么?日志不会显示任何错误。日志不会显示任何错误。有一个答案是,对于bcrypt,密码字段的长度必须是60,然后是45。我们如何测试密码字段的大小。任何人都可以分享这个问题。以及如何将其设置为60?我发现了同样的情况。我认为这可以归结为创建密码时创建的指纹。在本地使用,效果很好。在生产服务器上时,由于某种原因,passoword的签名最初是不同的。就好像他们有两个秘密或指纹。奇怪,还没解决,但现在看到了
router.post('/login', function(req, res, next) {
    console.log(req);
  passport.authenticate('local', function(err, user, info) {
    if (err) return next(err)
    if (!user) {
        //console.log(user);
        req.flash("error", "Either Username or Password is wrong");
      return res.redirect('/login');
    }
    req.logIn(user, function(err) {
      if (err) return next(err);

      {
        //console.log(user);
        req.flash("success","Successfully logged in as " + user.username);
        res.redirect('/coaching');
    }
    });
  })(req, res, next);
});