socket.io客户端名称空间授权

Node.js似乎有一个诀窍来获取有用的模块,但没有足够的文档或没有文档。 socket.io就是这样一个模块。 我想使用内置的授权function,名称空间,但我不知道如何在客户端工作。 服务器端,他们提供了足够的文档,但除此之外,我不知道。

编辑 :我不想知道如何从客户端获取cookie数据 – 我知道如何做到这一点,而是如何从客户端,通过JavaScript直接传递数据(例如用户名和密码)。

关于使用Socket.IO进行授权有很多不错的文档: https : //github.com/LearnBoost/socket.io/wiki/Authorizing (向下滚动到“命名空间授权”和“客户端如何处理全局授权”)

你想要达到什么目的? 这听起来有点像你试图通过Socket.IO“发布”用户名/密码。 Socket.IOvalidation发生在握手阶段,所以你可以做到以下几点:

  • 在通用授权之后“发出”用户名/密码组合(希望你正在使用TLS),并在一个不好的validation后断开用户(相当平庸的方法IMO)

  • 请依靠服务器端会话信息进行身份validation。 这可能是您想要的方法,因为您的服务器端handshakeData应该包含您需要确定用户是否被授权的所有内容。 在连接到套接字之前,你应该依靠authentication一个HTTP会话,这样你不会在每次连接到socket.io时都传输一个用户名/密码组合(如果你回退的话可能会很多在XHR)。 有很多关于这方面的文章,但这是一个很好的开始: http : //www.danielbaulig.de/socket-ioexpress/