我有一个应用程序启动并运行。用户在登录后要求他们在以后回来时会保持记录状态。
我知道我需要在客户端以某种方式存储会话数据,例如cookie。我试过这个https://stackoverflow.com/a/25618636/2440515,但它没有用。这不是https://www.npmjs.com/package/socket.io-handshake
我在最新版本中同时拥有Express和Socket.io。
我的应用程序使用Socket.io进行身份验证,因此我需要一种方法来更新来自Socket.io回调的cookie。我花了4小时搜索并尝试不同的解决方案。有人可以给我一个暗示吗?
谢谢!
答案 0 :(得分:0)
您可以使用 coockie 模块来解决传递的Cookie:
$ npm install cookie
代码:
//...
var cookie = require('cookie');
//...
io.use(function (socket, next) {
var cookies = cookie.parse(socket.request.headers.cookie);
var my_secret = cookies.my_secret || null;
if (!my_secret) {
return next(new Error('No cookie set'));
}
validateMySecretAsync(my_secret, next);
});
// ....