Javascript 如何修复passport身份验证引起的错误
我一直在试图弄清楚为什么每次我尝试登录时,localhost都会出现错误localhost没有发送任何显示在浏览器上的数据 使用注册的用户名和密码。请问,这个问题的原因是什么 设置护照Javascript 如何修复passport身份验证引起的错误,javascript,node.js,mongoose,ejs,passport-local-mongoose,Javascript,Node.js,Mongoose,Ejs,Passport Local Mongoose,我一直在试图弄清楚为什么每次我尝试登录时,localhost都会出现错误localhost没有发送任何显示在浏览器上的数据 使用注册的用户名和密码。请问,这个问题的原因是什么 设置护照 const passport = require("passport"); const localStrategy = require("passport-local").Strategy; const { Passport } = require("passpo
const passport = require("passport");
const localStrategy = require("passport-local").Strategy;
const { Passport } = require("passport/lib");
模式文件的内容
const mongoose = require("mongoose");
const passportLocalMongoose = require("passport-local-mongoose");
const userSchema = mongoose.Schema({
username: {
type: String,
required: true
},
password: String,
});
userSchema.plugin(passportLocalMongoose);
const User = mongoose.model("User", userSchema);
module.exports = User;
护照配置
router.use(require("express-session")({
secret: "It's all about coding!",
resave: false,
saveUninitialized: false
}));
router.use(passport.initialize());
router.use(passport.session());
passport.use(new localStrategy(User.authenticate()));
passport.serializeUser(User.serializeUser());
passport.deserializeUser(User.deserializeUser());
登记路线
router.get("/register", async(req, res)=>{
res.render("register");
})
router.post("/register", async (req, res)=>{
req.body.username
req.body.password
var newUser = new User ({username: req.body.username})
User.register(newUser, req.body.password, (err, user)=>{
if(err){
console.log(err)
return res.render("register")
}
passport.authenticate("local")(req, res, ()=>{
res.redirect("login");
})
})
})
登录路径:
router.get("/login", (req, res)=>{
res.render("login");
})
router.post("/login", passport.authenticate("local", {
successRedirect: "new",
failureRedirect: "login"
})
我应该重定向到的页面的路径是:
router.get("/new", isLoggedIn, (req, res) => {
console.log(req.params)
res.render("new", {post: new Post()});
})