簡體   English   中英

如何使用Socket.io和Express處理會話?

[英]How to handle sessions with Socket.io and Express?

我有一個應用程序啟動並運行。 用戶在登錄后要求他們在以后回來時會保持記錄狀態。

我知道我需要在客戶端以某種方式存儲會話數據,例如cookie。 我試過這個https://stackoverflow.com/a/25618636/2440515但它不起作用。 這不是https://www.npmjs.com/package/socket.io-handshake

我有最新版本的Express和Socket.io。

我的應用程序使用Socket.io進行身份驗證,因此我需要一種方法來更新Socket.io回調中的cookie。 我花了4小時搜索並嘗試不同的解決方案。 有人能給我一個暗示嗎?

謝謝!

您可以使用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);

});
// ....

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM