【发布时间】:2025-12-07 18:15:02
【问题描述】:
我正在尝试构建一个基于sails.js 的聊天应用程序。来自特定聊天的消息的 url 如下所示:
/api/chat/:id/messages
当我使用 XHR 请求此 url 时,它提供了一个会话 cookie,并且sails.js 构建了一个会话对象。我可以轻松检查用户权限以阅读特定聊天中的消息。
但是,我需要使用 socket.io 请求此 url,以便客户端可以订阅 messages 集合的所有未来更改。
当我使用 socket.io 请求此 url 时,没有设置会话 cookie,并且sails.js 会话为空。所以,我无法检查服务器端的用户权限。
我明白套接字请求不是 HTTP 请求。他们自己不提供任何cookies。
有什么简单的解决方法吗?
【问题讨论】:
-
澄清一下-您在跨域时遇到了这个问题,对吗?就像你在 www.foo.com 上嵌入一个脚本并打开一个到 www.bar.com 的套接字一样?
-
不,迈克——这不是跨域问题。我终于找到了答案并将其发布在下面。您必须以不同的方式访问您的套接字会话对象。附言也许你应该在sails.js 核心中实现这个解决方法。
标签: session express socket.io session-cookies sails.js