我正在使用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("/");
});
但是每当我运行这个时,当我注册一个新用户时,它会给我一个只有“错误请求”的网页,但用户是在数据库中创建的。
答案 0 :(得分:-1)
看this answer;您的护照方法不是错误请求:这表示您尝试提出的请求不正确:
您是否设定了头部:Content-Type: application-json
?
同时将bodyParser
更新为最新版本。这解决了我遇到的类似问题。