使用 Node.js/Socket.IO 处理需要广泛浏览器兼容性的应用程序,因此预计客户端可能在其浏览器中不支持 WebSocket。我想知道无论底层传输如何,验证用户身份的最可靠方法是什么。
有许多示例在连接/握手时发送带有 sessionID 的 cookie,这是理想的,但我担心这不适用于 Flash 套接字,因为发送的 cookie 不同。
另一种方法是让客户端在用户进行身份验证时存储 SessionID,然后当用户需要 Socket 连接时,您将会话 ID 作为第一条消息发送。这种方法的问题是您会产生建立完整连接的开销,这从负载或安全角度来看并不理想。
无论客户端和服务器之间使用什么底层传输机制,在连接/握手阶段(即不通过连接的套接字发送令牌)使用 Socket.IO 的最佳身份验证模式是什么?