首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Node.js:与passport.socketio一起使用mocha时共享会话cookie

Node.js:与passport.socketio一起使用mocha时共享会话cookie
EN

Stack Overflow用户
提问于 2015-05-22 14:00:36
回答 1查看 718关注 0票数 4

我在一个Node.js项目中工作,在那里我们使用护照进行身份验证。为了将身份验证连接到socket.io/engine.io,我们使用passport.socketio包。这在浏览器中非常有用,因为可用的cookie是在通过HTTP完成的初始Socket.IO/Engin.io握手中发送的。

当我们尝试用mocha为套接字API编写测试时,无论如何,通过首次通过带模块请求的护照HTTP调用登录,我们无法找到一种方法将接收到的会话cookie与socket.io-client (使用Engin.io客户端)初始连接一起传递。因此,我们无法找到用摩卡编写这些测试的方法。

是否有一种方法可以在握手中设置要发送的附加标头,或者在请求和套接字连接之间共享cookie jar,还是有其他解决方案?

(有一种过时的“黑客”解决方案,但它不再起作用了,jfromaniello/passport.socketio#72)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-17 01:52:49

我也在努力解决这个问题,在我发现这一点之后,我写了一篇关于它的文章:用Mocha测试Socket.io + Passport.socketio

简而言之,我无法在握手请求中注入cookie,但是passport.socketio允许我们将session_id作为查询参数传递,如下所示:

代码语言:javascript
复制
var socket = io(
  socketUrl,
  {
    //-- pass session_id as a query parameter
    query: 'session_id=' + mySessionId
  }
);

有关详细信息和示例,请参阅本文。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30398732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档