node.js - 从 WebSocket 请求中读取 cookie 信息

标签 node.js cookies websocket connect

我正在使用 Node.js 和 WebSocket-Node ( WebSocket-Node ) 创建 WebService。我需要从 Web 服务器访问 cookie 或 session 信息,以将 WebSocket 连接绑定(bind)到用户 ID。我知道 cookie 信息是通过 req.cookies 发送的,但我不熟悉访问“connect.sid”cookie 的语法。

谢谢!

最佳答案

通过查看库代码(大约第 200 行):

https://github.com/Worlize/WebSocket-Node/blob/master/lib/WebSocketRequest.js

cookie 似乎是一个具有“名称”和“值”属性的对象数组

所以你可以拥有这样的函数(未测试):

function getSidFromCookies(cookies) {
     var filtered = cookies.filter(function(obj) {
         return obj.name == 'connect.sid';
     });
     return filtered.length > 0 ? filtered[0].value : null;
}

那么你可以这样做:

var connectSid = getSidFromCookies(req.cookies);

connectSid 将是 cookie 值或 null

关于node.js - 从 WebSocket 请求中读取 cookie 信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10601272/

相关文章:

spring - 为该 cookie 指定的域无效

c++ - 不向 socket.io nodejs(服务器)发送数据 socket.io c++(客户端)

javascript - 无法解析 JSON 文件 - 意外的标记

javascript - webpack: 'import' 不工作,而 'require' 工作正常

javascript - 如何解决 Node.js 的异步行为?

asp.net - Cookie 在 asp.net 中不起作用

node.js - 安装 NodeJS contextify 包产生错误

php - $_SESSION cookie 在浏览器关闭时不会过期

reactjs - ReactJS 中的 WebSocket 正在使用空数组设置状态

python - WebSocket 在 1000 条消息后关闭