Node.js 快速会话未保存Cookie

Node.js 快速会话未保存Cookie,node.js,reactjs,express,passport.js,Node.js,Reactjs,Express,Passport.js,我正在使用React with Nodejs和Express制作登录应用程序。我只想在登录时访问我的个人资料页面。我使用passport在浏览器中验证和保存cookie 如果我没有登录,它应该带我回到主页,当我登录时,我应该能够访问我的个人资料 现在,当我还创建一个帐户时,它应该在我的浏览器中保存一个cookie,这样我就可以访问我的个人资料页面,但是,当我检查我的浏览器时,localhost没有cookie 我的代码有点问题,我似乎无法理解。有人能帮我吗 这是我的服务器.js const ex

我正在使用React with Nodejs和Express制作登录应用程序。我只想在登录时访问我的个人资料页面。我使用passport在浏览器中验证和保存cookie

如果我没有登录,它应该带我回到主页,当我登录时,我应该能够访问我的个人资料

现在,当我还创建一个帐户时,它应该在我的浏览器中保存一个cookie,这样我就可以访问我的个人资料页面,但是,当我检查我的浏览器时,localhost没有cookie

我的代码有点问题,我似乎无法理解。有人能帮我吗

这是我的服务器.js

const express = require("express");
const cors = require("cors");
const mongoose = require("mongoose");
const bodyParser = require("body-parser");
const session = require("express-session");
const passport = require("passport");
const passportLocalMongoose = require("passport-local-mongoose");

const app = express();
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
app.use(cors());
app.use(bodyParser.urlencoded({ extended: true }));

app.use(
session({
secret: "This is our little secret",
resave: false,
saveUninitialized: false,
})
);

app.use(passport.initialize());
app.use(passport.session());

//connect to mongodb atlas
mongoose.connect(
"mongodb+srv://admin-darwin:test123@cluster0.nmhlm.mongodb.net/secretsDB",
{ useNewUrlParser: true, useUnifiedTopology: true }
);

//user schema
const userSchema = new mongoose.Schema({
username: String,
email: String,
password: String,
});

userSchema.plugin(passportLocalMongoose);

//user model
const User = mongoose.model("User", userSchema);

passport.use(User.createStrategy());

passport.serializeUser(User.serializeUser());
passport.deserializeUser(User.deserializeUser());

app.get("/profile", (req, res) => {
if (req.isAuthenticated()) {
console.log("yes");
} else {
res.send("not authenticated");
}
});

// create user
app.post("/new", (req, res) => {
User.register(
{ username: req.body.username },
req.body.password,
(err, user) => {
if (err) {
console.log(err);
res.redirect("/new");
} else {
passport.authenticate("local")(req, res, () => {
res.send("ok");
});
}
}
);
});

app.listen(5000, () => {
console.log("server running on port 5000");
});

首先,我建议你重构一下。这增加了可读性,还将显著提高捕获小错误的概率。将passport设置、db设置等保存在单独的文件中。