socket.io设置没有相同站点属性的跨站点cookie

时间:2019-10-25 11:43:57

标签: npm socket.io

我有一个socket.io应用程序,最近收到此警告:

  

设置了与 URL 上的跨站点资源关联的cookie   没有SameSite属性。       如果将来的Chrome浏览器版本设置为SameSite=NoneSecure,则仅会发送带有跨站点请求的cookie。

     

您可以在下面的开发人员工具中查看Cookie   应用程序>存储> Cookies,并在以下位置查看更多详细信息   https://www.chromestatus.com/feature/5088147346030592和   https://www.chromestatus.com/feature/5633521622188032。`

显然,Chrome将来会对其进行更新: SameSite warning Chrome 77

我已经尝试过this,但无济于事:io = io.listen(server, { cookie: false });

我认为Cookie没有任何作用,那么如何禁用io来设置它呢?

1 个答案:

答案 0 :(得分:0)

根据Socket IO的github存储库中报告的问题,该cookie不用于任何东西;您可以通过在服务器选项中设置cookie: false来禁用它。

但是您错过的是在初始化套接字时设置{cookie: false}选项,而不是http.listen。下面提供的解决方案适用于使用express作为服务器的我。

var server = require('http').createServer(express());
var io = require('socket.io')(server, { path:"/some/path", cookie: false });