【发布时间】:2020-03-04 21:17:11
【问题描述】:
我见过this question and answer,它解释了如何与 Socket.IO 1.x 和 Express 4.x 共享会话,this blog 建议使用 socketio-auth。
如果您已经与 express 共享会话,是否需要同时使用这两种方法进行身份验证。它是否增加了任何安全优势?
【问题讨论】:
标签: node.js express session socket.io
我见过this question and answer,它解释了如何与 Socket.IO 1.x 和 Express 4.x 共享会话,this blog 建议使用 socketio-auth。
如果您已经与 express 共享会话,是否需要同时使用这两种方法进行身份验证。它是否增加了任何安全优势?
【问题讨论】:
标签: node.js express session socket.io
如果您已经在 Express 中通过 http 进行了身份验证会话,那么 socket.io 连接实际上只是另一个 http 连接(它实际上以 http 连接开始,然后转换为 webSocket 协议(带有 socket.io 层在顶部)。因此,如果您愿意信任来自该客户端的下一个 http 请求的会话,那么信任来自同一客户端的传入 socket.io 连接的会话没有什么不同。它们是同一回事.
当您还没有来自 socket.io 连接的经过身份验证的 http 页面时,从头开始验证 socket.io 连接可能有用的地方,或者因为 socket.io 连接是它自己的 API并拥有自己的服务,甚至可能在单独的主机上,因此没有“其他”身份验证可以依赖。
如果您已经与 express 共享会话,是否需要同时使用这两种方法进行身份验证。
没有。您可以只使用已有的快速会话,以便现在 socket.io 连接来自同一个客户端。
它是否增加了任何安全优势?
仅当出于某种原因您希望对每个新请求都进行身份验证并且根本不依赖会话 cookie 时,即使对于 http 请求也是如此。或者,如果没有会话 cookie,因为 socket.io 连接转到不同的主机。
【讨论】: