3
我正在使用express和socket.io。我想從socket.io中訪問一些req.session
變量。我在socket.io and session上閱讀這篇文章,對於如何獲得req.session
變量,我仍然非常困惑。如何從socket.io中訪問req.session變量?
我正在使用express和socket.io。我想從socket.io中訪問一些req.session
變量。我在socket.io and session上閱讀這篇文章,對於如何獲得req.session
變量,我仍然非常困惑。如何從socket.io中訪問req.session變量?
完成此操作的一種方法是使用來自套接字內部的會話存儲 - 這將擁有所有會話變量。這就是我如何進行授權(將cookie ID與數據庫中的會話ID進行比較)。
io.set('authorization', function (data, accept) {
if (data.headers.cookie) {
data.cookie = utils.parseCookie(data.headers.cookie);
data.sessionID = data.cookie['connect.sid'].split('.')[0].substring(2);
sessionStore.get(data.sessionID, function (err, session) {
// now you have all session variables
});
}
});
請注意,您提到的答案是舊版本的socket.io。也許看看[這個答案](http://stackoverflow.com/questions/6397574/how-to-access-session-in-express-outside-of-the-req?rq=1)。不能說,如果它仍然適用於個人,因爲我不使用socket.io。您還可以閱讀[socket.io wiki](https://github.com/LearnBoost/socket.io/wiki/Authorizing)上的授權。 – numbers1311407
謝謝@ numbers1311407 – ThomasReggi