node.js - 不确定为什么在使用 express-session 时没有 cookie 被发送回我的 localhost 客户端
问题描述
遇到节点问题express-session
,基本上只是想了解它在我的 postgres 数据库中的 cookie 和我的会话存储方面是如何工作的。
对于初学者,我不确定为什么在我的 react 应用程序运行的 chrome 浏览器中没有收到会话 id cookie localhost:3000
。如果我localhost:5000/login
从邮递员调用路由,则会收到一个 cookie,但是当从 Chrome 调用相同的路由时:localhost:5000/login
然后检查我的 cookie,使用fetch
API 时不会创建任何内容。
会话在 postgres 中创建得很好。
这是我用于会话设置的中间件:
app.use(session({
store: new pgSession({
pool : pool, // Connection pool
schemaName: 'my_schema',
tableName : 'user_sessions'
}),
secret: randomString.generate({
length: 14,
charset: 'alphanumeric'
}),
resave: false,
saveUninitialized: false,
cookie: { maxAge: 1000 * 60 * 60 * 24,
httpOnly: true }
}))
app.use(function (req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
res.header('Access-Control-Allow-Methods', 'PUT, POST, GET, DELETE, OPTIONS');
next();
});
我的另一个问题是,在我的 react 应用程序中,如何使用我的 postgres 数据库中的会话信息来检查对所有路由的所有请求是否仍然来自客户端的同一用户?
解决方案
试试这个,改变你的cors中间件这个
app.use(cors({ origin: true, credentials: true }));
并在您提出请求时添加
withCredentials: true,
credentials: "include",
我有同样的问题,我在从邮递员发帖时收到烹饪,但在使用 axios 发出请求时不是从浏览器,希望它也适用于你
推荐阅读
- c# - 卸载和重新安装 APK 后 Xamarin 表单“未安装应用程序”错误
- jquery - 具有两个相同名称的新正则表达式,因此忽略其中的一部分
- javascript - 字符串参数的极简数组
- python - 不支持的格式字符“m”
- php - 一对多关系的总价格(laravel)
- tfs - TFS 2017 管理员控制台未打开,装配错误
- r - 两个数字向量上的全对全 setdiff,具有接受匹配的数字阈值
- python - 如何将 listiterator 对象转换为树对象?
- jquery - 两个月,同时在引导程序的日期选择器中选择日期
- batch-file - 从所有用户的桌面删除所有图标的批处理脚本