我无法让用户登录到我的网站。我为此网站使用Passport.js,passport-local-mongoose和express-session,经过一番测试后发现我的用户尚未登录。我需要登录的用户因为网站依赖Cookie
在我的“ / logout” GET请求中,我放置了一个函数来查看用户是否已登录。每当我登录并尝试运行代码时,我都会看到一个cookie,但是直到最终超时我才被重定向。如果我已经登录,那么我将被重定向。我需要确保用户先登录,然后才能注销他们。
var path = require("path");
var express = require("express");
var mongoose = require("mongoose");
var bodyParser = require("body-parser");
var app = express();
mongoose.connect("mongodb://localhost/VerfundenV1", {useNewUrlParser: true, useFindAndModify: false});
app.set("view engine", "ejs");
app.use(bodyParser.urlencoded({extended: true}));
var modelsPath = path.join(__dirname, "../utils/mongoose/");
var functionPath = path.join(__dirname, "../utils/customFunctions/");
var User = require(modelsPath + "UserModel.js");
var passport = require("passport");
var LocalStrategy = require("passport-local");
app.use(require("express-session")({
secret: "nothingtoseehere",
resave: false,
saveUninitialized: false
}));
app.use(passport.initialize());
app.use(passport.session());
passport.use(new LocalStrategy({usernameField: 'email'}, User.authenticate()));
passport.serializeUser(User.serializeUser());
passport.deserializeUser(User.deserializeUser());
app.get("/", function(req, res){
res.send("HEY");
})
app.get("/dashboard", function(req, res){
res.send("DASHBOARD");
})
//user auth and all that stuff
app.get("/register", function(req, res){
res.render("register")
})
app.post("/register", function(req, res){
User.register(new User({
firstName: req.body.firstName,
lastName: req.body.lastName,
region: req.body.region,
email: req.body.email,
phone: req.body.phone
}), req.body.password, function(err, user){
if(err){
console.log(err);
res.render("register");
}else{
passport.authenticate("local")(req, res, function(){
res.redirect("/")
})
}
})
});
app.get("/login", function(req, res){
res.render("login");
});
app.post("/login", passport.authenticate("local",
{
successRedirect: "/",
failureRedirect: "/login"
}), function(req, res){
})
app.get("/logout", function(req, res){
if (req.isAuthenticated()) {
return res.redirect('/') // Handle valid logout
}
})
app.listen(3000, function(){
console.log("SERVER SIX, GOING DARK")
})
任何帮助将不胜感激。