0

エクスプレス セッションと一緒に socket.io を使用しています。次のように、ミドルウェアを使用してヘッダーに Cookie を取得しています。

io.use(function(socket, next) {
console.log(socket.handshake.headers.cookie);
next();

}); これにより、コンソールに次のように表示されます。

io=ELJQk5v7q-jjZ5d_AAAA; connect.sid=s%3A17faf004-46c7-4219-9dac-81853ada8cab.ZzFPL%2BpHY9hNxEMDcLesnGEbuZyU9mOwVBZNEBuHzKA

わかりました、素晴らしいです!これで Cookie を取得できましたが、そこから情報を取得するにはどうすればよいでしょうか。私は完全に混乱しています。

私のセッションは次のように初期化されます。

app.use(session({ //using express-session
genid: function(req) {
    return uuid.v4();
},
secret: 'operation',
resave: false,
saveUninitialized: true

}));

簡単な説明を広範囲に検索しましたが、見つかりませんでした。sessionStore を使用する必要がありますか? もしそうなら、なぜですか?これを処理するように設定されていると思われるさまざまなモジュールを試しましたが、これまでのところどれも機能していません。私はMongoDBを使用しているので、必要に応じてそこに保存してもかまいませんが、Redisを使用して他の人が行っているようにこれを処理することは避けたいです。

4

1 に答える 1

1

この問題の解決策を何時間も、何日も何日も探し続けた後、私はついにうまくいく解決策を見つけました. 誰かが同様の問題を抱えている場合は、express-socket.io-session モジュールを使用することをお勧めします。それは本当にうまくいきます!それは私を多くのフラストレーションから救ってくれました。私が試した他のモジュールはすべて機能せず、必要以上に複雑でした。

https://www.npmjs.com/package/express-socket.io-session

于 2016-01-21T16:03:33.297 に答える