Как установить пароль администратора с паспортным узлом - PullRequest
0 голосов
/ 03 марта 2019

На этом сайте будут только пользователи-администраторы, я создал схему, представление регистрации и маршрут, однако что-то не так с логикой в ​​маршруте.

/ страница регистрации имеет только три входа, имя пользователя, пароль и адрес электронной почты.В настоящий момент, если пользователь использует произвольный пароль для входа, он показывает ошибку флэш-памяти, говорящую, что пароль недействителен, и перенаправляет меня на целевую страницу, однако он все еще создает нового пользователя в базе данных.

Также, если пользователь использует правильный пароль, происходит то же самое, что и выше.Что я делаю неправильно?вот мой код:

Схема

var UserSchema = new mongoose.Schema({
    username: {
        type: String, 
        unique: true, 
        required: true
    },
    password: {
        type: String
    },
    email: {
        type: String, 
        unique: true, 
        required: true, 
        lowercase: true,
    },
    resetPasswordToken: String,
    resetPasswordExpires: Date,
   // isAdmin: {type: Boolean, default: false, required:true}
});

Просмотр регистра

<form class="form-group" action="/register" method="POST">
  <div class="form-group">
    <input class="form-control mb-1" type="text" name="username">
  </div>
  <div class="form-group">
    <input class="form-control mb-3" type="password" name="password">
  </div>
  <div class="form-group">
    <input class="form-control" type="email" name="email">
  </div>
  <button class="btn btn-outline-info w-100">Register!</button>
</form>

Маршрут

// register route
router.get("/register", function(req, res) {
    res.render("register", {page: "register"});
});
// handle sign up logic
router.post("/register", function(req, res){
    var newUser = new User({
        username: req.body.username,
        email: req.body.email
    });

    User.register(newUser, req.body.password, function(err, user){
        if(err){
            console.log(err);
            return res.render("register", {error: err.message});
        } else {
            if(req.body.password !== process.env.ADMIN_CODE) {
                req.flash('error', 'the password is not valid');
                res.redirect("/");     
            } else {
                passport.authenticate("local")(req, res, function(){
                    req.flash("success", "Great! Welcome! " + req.body.username);
                    res.redirect("/"); 
                });
            }   
        }  
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...