Node.js,express,护照认证“Bad Request”

时间:2016-01-17 05:43:06

标签: javascript node.js mongodb express passport.js

我正在使用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("/");
});

但是每当我运行这个时,当我注册一个新用户时,它会给我一个只有“错误请求”的网页,但用户是在数据库中创建的。

1 个答案:

答案 0 :(得分:-1)

this answer;您的护照方法不是错误请求:这表示您尝试提出的请求不正确:

  • 您是否设定了头部:Content-Type: application-json

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