使用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。
发送帖子请求后,我在控制台中看到以下内容:
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..
答案 0 :(得分:1)
我们终于弄清楚了......
'活动/订阅' - 没有好处
' /活动/订阅' - yay