我正在运行一个WebSocket服务器,想知道是否计划在将来使用握手进行客户端身份验证...也许是草案xxxx :)
你有相关信息吗?我听说使用draft07可以向服务器发送一个会话ID,因此可能有助于对客户端进行身份验证...
目前我所做的是等待最多10秒,直到客户端用登录头、用户名和密码向我发送消息。但我认为这不是“THE”解决方案。你们那里是怎么做的呢?
我正在运行一个WebSocket服务器,想知道是否计划在将来使用握手进行客户端身份验证...也许是草案xxxx :)
你有相关信息吗?我听说使用draft07可以向服务器发送一个会话ID,因此可能有助于对客户端进行身份验证...
目前我所做的是等待最多10秒,直到客户端用登录头、用户名和密码向我发送消息。但我认为这不是“THE”解决方案。你们那里是怎么做的呢?
WebSockets协议允许在握手期间交换标准的HTTP认证标头。如果您拥有一个将WebSockets服务器作为模块插入到现有Web服务器中的服务器,则现有的Web服务器身份验证应该已经有效。否则,如果您有一个独立的WebSockets服务器,则可能需要添加身份验证支持。
更新
正如@Jon所指出的那样,与普通的HTTP / XHR请求不同,浏览器API不允许您为WebSocket连接设置任意的“X- *”标头。您可以设置的唯一标题值是协议。这很不幸。一个常见的解决方案是使用基于票据的系统,该系统依赖于现有的HTTP机制进行授权/身份验证,然后通过websocket连接传递此票据并以此进行验证:https://devcenter.heroku.com/articles/websocket-security