У меня проблемы с регистрацией пользователей на моем сайте.Я использую Passport.js, passport-local-mongoose и express-session для этого сайта, и после небольшого тестирования выясняется, что мои пользователи не входят в систему. Мне нужно, чтобы мои пользователи вошли в систему, так как сайт использует куки-файлы.
В моем GET-запросе "/ logout" я добавил функцию, позволяющую проверить, вошел ли пользователь в систему или нет.Всякий раз, когда я вхожу в систему и пытаюсь запустить код, я вижу файл 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")
})
Любая помощь будет оценена.