Node.js nodejs+;websocket会话混淆

Node.js nodejs+;websocket会话混淆,node.js,session,express,sockjs,Node.js,Session,Express,Sockjs,我真的很困惑如何使用我的nodejs应用程序设置会话。我使用的是express+socksjs,我很难理解如何将ws-connection绑定到特定的用户会话 在sockjs页面上,他们说不要使用cookie进行授权,但是如果我在建立ws-connection时没有从cookie发送会话(express之前设置了会话的cookie),我如何将特定ws-connection与特定用户绑定 我想实现这些简单的目标: -用户(登录或来宾)访问页面并建立ws-connection -我将连接id和会话的

我真的很困惑如何使用我的nodejs应用程序设置会话。我使用的是express+socksjs,我很难理解如何将ws-connection绑定到特定的用户会话

在sockjs页面上,他们说不要使用cookie进行授权,但是如果我在建立ws-connection时没有从cookie发送会话(express之前设置了会话的cookie),我如何将特定ws-connection与特定用户绑定

我想实现这些简单的目标: -用户(登录或来宾)访问页面并建立ws-connection -我将连接id和会话的键值对存储在redis中,以便知道给定ws-connection属于哪个用户

如果在建立ws-connection之后无法从cookie发送会话,该如何做?即使我想要,cookie也不可用,因为它是HttpOnly,因此无法通过js读取

编辑:


建议我在第一条消息中发送加密的用户详细信息,这听起来不错,但我仍然不确定应该从哪里获取这些详细信息。我一直都是通过会话和cookies来完成的…

你可以看看。我已经使用过它,而且它非常简单。

对于会话恢复,大多数情况下都会使用cookie。SockJS确实允许使用Cookie,但仅仅使用原始Cookie而不使用任何其他安全实践有点可怕,特别是如果您的SockJS位于另一个域上,并且Cookie的来源范围不确定的话

考虑使用令牌方法进行身份验证


如果你真的需要使用cookies,请阅读以下内容,所有的理由都在这里,我不会重复已经解释过的情况:

当我在努力解决这个问题时,这篇博文帮助了我: