重定向时丢失会话(node.js + socket.io)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了重定向时丢失会话(node.js + socket.io)相关的知识,希望对你有一定的参考价值。

我有一个中间件使用socket.io并一起表达。

io.use(function(socket, next) {
  sessionMiddleWare(socket.request, socket.request.res, next);
});

我通过socket.io发送实时通知,并且进展顺利。但是在使用socket.io之后,当我重定向到另一个页面时,我失去了会话,特别是对于所有客户端来说,会话​​都是相同的。在我不使用socket.io之前一切都很顺利。即使我重定向到另一个页面,我也不会丢失会话。为什么我在使用socket.io后会丢失会话?请帮帮我。

答案
const app = require('express')();
const sharedsession = require('express-socket.io-session');
const server = require('http').createServer(app);
const io = require('socket.io')(server);
const session = require('express-session')({
  secret: 'my-secret',
  resave: true,
  saveUninitialized: true
});
// Share session with io sockets
io.use(sharedsession(session));

以上是关于重定向时丢失会话(node.js + socket.io)的主要内容,如果未能解决你的问题,请参考以下文章

如果 keycloak 会话过期,我如何重定向到登录页面?

在 Codeigniter 中重定向后会话丢失

重定向到条带后丢失会话数据

Node.js 应用程序登录重定向

node.js 中的 Http 请求重定向和 cookie 处理

调用客户端重定向后会话属性丢失