websocket的基本authentication
当我使用chrome创build一个新的websocket
new WebSocket('ws://gert:passwd@127.0.0.1:8001/dbname')
nodejs服务器接收
GET /dbname HTTP/1.1 Upgrade: WebSocket Connection: Upgrade Host: 127.0.0.1:8001 Origin: http://127.0.0.1:8000 Sec-WebSocket-Key1: ' 5 5) 4 1e a9 9 0 19 Sec-WebSocket-Key2: 3000909100 Q
我如何检索gert和passwd?
好像chrome不会传递ws头文件中的基本身份validation数据。 为什么不把login / pwd作为url查询string的一部分? (并使用安全的WSS)
在Hybi-13之前,WebSocket规范中没有提到Authorization
头文件 。 Chrome实现了hybi-00和hybi-10(取决于Chrome的版本),所以它不是实现的要求。
现在在协议中提到了,也许Google会实现它,但是我不能保证在URI中放入“user:pass @ …”就一定是这样做的,它可能需要改变浏览器的WebSocket API。
Chrome没有通过授权标头作为升级请求的一部分。 这导致身份validation失败。
这个问题似乎在最新的铬在这里固定
SSL
我在Quora上find了这个链接 。
我同意你可以使用SSL,只是发送这些凭据作为第一条消息。
Socket.io
你也可以使用socket.io,它也有websockets传输来进行授权
Chrome浏览器不会发送带有websocket连接的cookie。 如果你有一个会话cookie,你可以使用会话cookie来识别发起websocket连接的用户。
- 为nodeJS(或浏览器)创build一个asychroneous api
- Chrome 54无法从我的网站获得HTTPS响应; Chrome 53,Chromium,Firefox和Safari
- 如何debugging一个运行在Chrome / WebKit上的Node.js服务器作为远程debugging器?
- 运行V8 JavaScript引擎的示例代码时出错
- 是否可以在Google Chrome扩展中embeddedHTTP服务器?
- 节点与Chrome,实施instanceof,多个文件
- React JS:console.debug不是一个函数
- 在浏览器中查看PDF – 使用POST在Chrome中破解
- 节点与Chrome,将console.log分配给一个variables?