Как исправить эту ошибку в логине с помощью паспорта - PullRequest
0 голосов
/ 04 января 2019

Я реализовал функцию входа в систему через паспорт. Я получил ошибку при компиляции. Первый раздел кода указывает на мой index.js. Этот файл хранится в файле маршрутов. Мой вопрос, почему это не работает.

//index.js File

router.get('/login', function(req, res, next) {
res.render('login', { title: 'Login' });
});

router.post('/login',
passport.authenticate('local',{failureRedirect:'views/login'}),
function(req, res) {
req.flash('success','You are successfully logged in');
console.log('successful logged in');
res.redirect('/home');
}
);

passport.serializeUser(function(user, done) {
done(null, user.id);
});

passport.deserializeUser(function(id, done) {
User.getUserById(id, function(err, user) {
done(err, user);
});
});

passport.use(new LocalStrategy(
function(username, password, done) {
User.getUserByUsername(username, function(err, user){
  if(err) throw err;
  if(!user){
    return done(null, false, {message: 'Unknown User'});
  }
  User.comparePassword(password, user.password, function(err, isMatch){
    if(err) throw err;
    if(isMatch){
      return done(null, user);
    } else {
      return done(null, false, {message: 'Invalid password'});
    }
 });
 });
}
));


 // user.js File 

  var UserSchema = mongoose.Schema({
  username: {
  type: String
  },
  pass: {
  type: String
  }

  });


  var user = module.exports = mongoose.model('user',UserSchema);

  module.exports.getUserByUsername = function(username, callback){
  var query = {username: username};
  User.findOne(query, callback);
   }

  module.exports.getUserById = function(id, callback){
  User.findById(id, callback);
  }

   module.exports.comparePassword = function(candidatePassword, hash, 
  callback) 
  {
  bcrypt.compare(candidatePassword, hash, function(err, isMatch) {
  if(err) throw err;
  callback(null, isMatch);
  });
  }


  //Login Form
  <form action="/login" method="POST">
  <input type="text" name="username" value=""><br>
  <input type="password" name="password" value=""><br>
  <input type="submit" name="submit" value="Login">
  </form>

Это на самом деле я получил, когда я выполнил

Ошибка: не удалось найти представление «ошибка» в каталоге представлений «M: \ New folder \ SuperApp \ views»

1 Ответ

0 голосов
/ 04 января 2019

Речь идет не о паспорте, но ваш фреймворк (express.js?) Не находит представление "ошибка" в каталоге "M: \ New folder \ SuperApp \ views"

Я предполагаю, что вы звоните res.render('error') где-то в вашем коде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...