使用Passport & Passport-Local创建新用户后无法登录



我正在使用express,创建新用户后似乎无法登录。我查了数据库。用户名已注册。但当我尝试登录该帐户时,什么也没发生。它不断地将我重定向到登录页面。有人能告诉我哪里出了问题吗?

我的用户型号

var mongoose = require("mongoose");
var passportLocalMongoose = require("passport-local-mongoose");
var UserSchema = new mongoose.Schema({
username: String,
password: String
});
// var UserSchema = new mongoose.Schema({
//     username: String,
//     password: String,
//     email: String,
//     firstName: String,
//     lastName: String,
//     motive: String,
//     level: {type: Number, default: 0}
// });
UserSchema.plugin(passportLocalMongoose);
module.exports = mongoose.model("User", UserSchema);

我的护照配置:

app.use(require("express-session")({
secret: "lena paul is the best",
resave: false,
saveUninitialized: false
}));
app.use(passport.initialize());
app.use(passport.session());
passport.use(new LocalStrategy(User.authenticate()));
passport.serializeUser(User.serializeUser());
passport.deserializeUser(User.deserializeUser());
app.use(bodyParser.urlencoded({ extended: true })); //save data submitted from form to req.body

注册逻辑:

//handles registration logic
app.post("/register", function(req, res){
var newUser = new User({
username:req.body.username
// firstName:req.body.firstName,
// lastName:req.body.lastName,
// email:req.body.email,
// motive:req.body.motive
});
User.register(newUser, req.body.password, function(err, newUser){
if(err){
console.log(err);
return res.render("register");
}
passport.authenticate("local")(req, res, function(){
res.redirect("/login");
});
});
});

登录逻辑:

app.post("/login", passport.authenticate("local",
{
successRedirect: "/",
failureRedirect: "/login"
}), function(req, res){
});

已修复。

问题出在POST日志表单中。我没有该字段的"名称"。

最新更新