我正在使用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"
}),res){
});