我正在使用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);我的passport配置:
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){
});发布于 2019-11-17 12:32:23
已修复。
问题出在表单的POST日志中。我没有这个字段的“名字”。
https://stackoverflow.com/questions/58897335
复制相似问题