【发布时间】:2021-07-25 08:14:45
【问题描述】:
节点 express-session 有问题,基本上只是想了解它在我的 postgres 数据库中的 cookie 和会话存储方面是如何工作的。
对于初学者,我不确定为什么在我的 react 应用程序在 localhost:3000 上运行的 chrome 浏览器中没有收到会话 ID cookie。如果我从邮递员那里调用路由 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 数据库中的会话信息来检查对所有路由的所有请求是否仍然来自客户端的同一用户?
【问题讨论】:
标签: node.js reactjs express middleware setcookie