ERR_HTTP_INVALID_STATUS_CODE --- сервер отключается при сбое входа на сайт - PullRequest
0 голосов
/ 28 апреля 2020

Я хочу сделать аутентификацию на моем сайте. Я сделал это с паспортом. js, и все вроде бы хорошо, но есть одна большая проблема. Если я ввожу неправильное имя пользователя или пароль при входе в систему, весь сервер отключается. У меня есть операторы «if» в моем коде, которые должны показывать fla sh массажи, когда пароль неправильный. Отлично работает с регистрацией. Ниже приведены части кода в моих файлах с аутентификацией при входе в систему и всей ошибкой с консоли.

код ошибки

https://prnt.sc/s70s5m

файловые маршруты. js

const User            = require("../models/user");
const Post            = require("../models/post");

module.exports = function(app,passport){

app.get("/login", function(req,res){
    res.render("login", {message:req.flash("loginMessage")});
});

app.post("/login", passport.authenticate("local-login", {
    successRedirect:"/",
    failureRedorect:"/login",
    failureFlash:true
}))};

паспорт файла. js

   passport.use('local-login', new LocalStrategy({
    passReqToCallback : true
},
function(req, username, password, done) {

    User.findOne({ 'local.username' :  username }, function(err, user) {
        if (err)
            return done(err);

        if (!user)
        {
            return done(null, false, req.flash('loginMessage', 'No user found.'));
        }
        if (!user.validPassword(password))
        {
            return done(null, false, req.flash('loginMessage', 'Oops! Wrong password.')); 
        }
        else
             return done(null, user);
    });

}));

пользователь файла . js

const mongoose = require("mongoose"),
  bcrypt   = require("bcrypt-nodejs");

var userSchema = new mongoose.Schema({
    local: {
        username:String,
        password:String
    }
});

userSchema.methods.generateHash = function(password) {
    return bcrypt.hashSync(password, bcrypt.genSaltSync(8), null);
};
userSchema.methods.validPassword = function(password) {
    return bcrypt.compareSync(password, this.local.password);
};

1 Ответ

0 голосов
/ 28 апреля 2020

Он неправильно введен в failureRedorect:"/login". Правильно: failRedirect.

...