Паспорт / Реактив для начинающих: система входа не работает - PullRequest
0 голосов
/ 13 ноября 2018

Я не могу заставить эту систему входа в систему работать, вот мой код:

Код реакции:

  login(username, password) {
      fetch('http://localhost:8080/login', {
        method: 'post',
        headers : { 
        'Content-Type': 'application/json',
            'Accept': 'application/json, text/plain, */*',
      },
      body: JSON.stringify({username: username, password: password})
      }).then(res=>res.json())
        .then(res => console.log(res));
    }

Бэкэнд узла, вызываемый кодом React:

app.post("/login", function(request, response) {
  passport.authenticate("local-login", function(err, user, info) {
    console.log("username: ", user)
    if (err) {
      return console.log(err);
    }
    if (!user) {
      return response.send(false);
    }
    request.logIn(user, function(err) {
      if (err) {
        return console.log(err);
      }
      checkLogIn(request, response);
      return response.send(true);
    });
  })(request, response);
});

И Passport.js:

 passport.use(
  'local-login',
  new LocalStrategy({
   usernameField : 'username',
   passwordField: 'password',
   passReqToCallback: true
  },
  function(req, username, password, done){
   connection.query("SELECT * FROM tbl_users WHERE username = ? ", [username],
   function(err, rows){
    if(err)
     return done(err);
    if(!rows.length){
     return done(null, false, req.send(JSON.stringify({ logged: "NO" })));
    }
    if(!bcrypt.compareSync(password, rows[0].password))
     return done(null, false, req.send(JSON.stringify({ logged: "NO" })));

    return done(null, rows[0]);
   });
  })
 );

Независимо от того, какие учетные данные я ввел, я получаю «False» в консоли Chrome.Это «False» происходит от серверной части узла, эта строка:

if (! User) {
return response.send (false);
}

Как вы можете видеть, я также консоль регистрирую имя пользователя в бэкэнде Node, и вот что я получаю из этой команды:

имя пользователя: false

Что должноЯ изменяю, чтобы консоль регистрировала имя пользователя пользователя, если его учетные данные верны, и консоль записывала сообщение об ошибке, когда оно неверно?

Ура!

...