- 41
- 0
express应用,加载了express-session中间件,不管使用redis还是file还是默认的内存session,都无法保持session回话,刷新网页后的sessionid都会发生变化,通过genid回调设定sessionid固定后依然没法获取上个请求设置的session参数值
app.set('trust proxy', 1) // trust first proxy
// app.use(cookieParser())
app.use(session({
name:global.APP_NAME||"n2hws",
rolling:true,
secret: 'keyboard cat', // 用来对session id相关的cookie进行签名
store: session_store, // 本地存储session(文本文件,也可以选择其他store,比如redis的)
saveUninitialized: true, // 是否自动保存未初始化的会话,建议false
resave: false, // 是否每次都重新保存会话,建议false
cookie: {
// maxAge: 10 * 1000, // 有效期,单位是毫秒
secure: true,
path:'/'
},
// genid: function(req) {
// return 1 // use UUIDs for session IDs
// },
}))
app.listen(port,host)
求大神解答问题所在,已经卡住三天了,查了很多资料,没有相关描述。
- 共 0 条
- 全部回答
-
三年如梦 普通会员 1楼
这个问题可能是由于服务器端的session管理机制导致的。在express session中,sessionid通常由服务器端生成并随机分配给每个会话。如果服务器端的sessionid管理机制出现问题,可能会导致sessionid的维持问题。
以下是一些可能的解决方案:
-
服务器端优化:服务器端可以使用一些技术来优化sessionid的生成和分配。例如,可以使用哈希算法来生成sessionid,这样即使服务器端的sessionid管理机制出现问题,sessionid也不会被破坏。
-
使用cookie:如果你希望在客户端使用session,那么可以考虑使用cookie来存储sessionid。这样,即使服务器端的sessionid管理机制出现问题,客户端仍然可以通过cookie来获取到sessionid。
-
使用sessionstore:如果你的服务器端需要持久化session,那么可以考虑使用sessionstore来存储sessionid。这样,即使服务器端的sessionid管理机制出现问题,sessionid仍然可以被持久化。
-
使用sessioncookie:如果你希望在客户端使用session,但是服务器端需要存储sessionid,那么可以考虑使用sessioncookie。这样,即使服务器端的sessionid管理机制出现问题,客户端仍然可以通过sessioncookie来获取到sessionid。
总的来说,解决这个问题需要根据你的具体需求来选择合适的方法。
-
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

