节点.js,快递,护照认证“错误请求”

Node.js, express, passport authentication "Bad Request"

本文关键字:错误 请求 错误请求 js 快递 节点 认证      更新时间:2023-09-26

我正在使用Cloud 9来设置一个基本的社交媒体网站,但在用户注册和身份验证时遇到问题。我正在使用Node.js,express和passport进行身份验证,mongoDB作为数据库。

// PASSPORT Setup //
app.use(require("express-session")({
secret: "I am 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());

// INDEX Page
app.get("/", function(req, res) {
   res.render("landing-page"); 
});

// REGISTER NEW
app.get("/register", function(req, res) {
    res.render("user/register");
});
// REGISTER CREATE
app.post("/register", function(req, res) {
    var user = req.body.user;
   var newUser = new User({
       username: user.email,
       firstName: user.firstName,
       lastName: user.lastName,
   });
   User.register(newUser, user.password, function(err, user) {
       if(err) {
           console.log(err);
           return res.render("user/register");
       }
       passport.authenticate("local")(req, res, function() {
          res.redirect("/"); 
       });
   });
});
// Login routes
app.get("/login", function(req, res) {
    res.render("login");
});
app.post("/login", passport.authenticate("local", {
        successRedirect: "/",
        failureRedirect: "/login"
    }) , function(req, res) {
});
// Logout route
app.get("/logout", function(req, res) {
    req.logout();
    res.redirect("/");
});
但是,每当我运行它时,当我

注册一个新用户时,它都会给我一个只有"错误请求"的网页,但是用户是在数据库中创建的。

看看这个答案;错误的请求不是您的护照方法的问题:这表明您尝试提出的请求不正确:

  • 你是否将头定为:Content-Type: application-json

  • 同时将bodyParser更新到最新版本。这解决了我遇到的类似问题。