【问题标题】:Accessing the session on socket requests with sails.js使用sails.js 访问套接字请求的会话
【发布时间】:2016-05-17 14:22:06
【问题描述】:

当使用 io.socket 发出客户端请求时,例如:

io.socket.post('activity/subscribe')

sails 中的请求对象没有附加会话信息,导致我的身份验证策略失败。

这不是跨域请求,并且已经设置了sails.sid cookie。我使用 redis 作为会话存储,对于 XHR 请求,会话填充正确。

我的理解是,sails 处理套接字的集成,以便当请求到达应用程序的路由时,它可以像任何其他请求一样被处理?

我已经查看了Sails.js authorization for socket requests 中的答案,但由于 req.socket.manager 未定义而失败。 也许这是旧版本的风帆?在 v0.11.0 中。

发送 post 请求后,我在控制台中看到以下内容:

verbose: Receiving incoming message from Socket.io:  { method: 'post',
  headers: {},
  data: {},
  url: 'activity/subscribe' }
verbose: Interpreting socket.io message as virtual request to "post activity/subscribe"...
error: policy error here as no session..

【问题讨论】:

  • 这绝对可以!您的控制台中是否有任何消息?
  • @sgress454 已更新问题。
  • 第一次启动 Sails 时有任何消息吗?试试sails lift --silly。另外,我假设您也在使用 Redis 进行会话?否则,请确保在启动服务器之前关闭指向该站点的所有浏览器选项卡/窗口,否则您最终会连接到不指向有效会话的套接字。

标签: node.js socket.io sails.js


【解决方案1】:

我们最终想通了......

'活动/订阅' - 不好

'/activity/subscribe' - 耶

【讨论】:

    猜你喜欢
    • 2013-08-17
    • 2017-07-09
    • 2015-11-08
    • 1970-01-01
    • 1970-01-01
    • 2015-09-09
    • 2015-04-28
    • 1970-01-01
    • 2018-01-05
    相关资源
    最近更新 更多