当我使用chrome创建一个新的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?
发布于 2011-07-16 16:55:20
看起来chrome实际上并没有在ws头中传递基本的auth数据。为什么不把login/pwd作为url查询字符串的一部分呢?(并使用安全wss)
发布于 2011-10-12 05:15:58
The Authorization header was not mentioned in the WebSocket spec until Hybi-13。Chrome实现了hybi-00和hybi-10 (取决于Chrome的版本),所以它不是实现的要求。
既然在协议中提到了它,也许Google会实现它,但我不能保证将"user:pass@...“在URI中,可能需要更改浏览器的WebSocket应用程序接口。
发布于 2014-10-17 16:38:55
Chrome没有将authorization头作为升级请求的一部分传递。这会导致身份验证失败。
这个问题似乎在最新的铬Here中得到了解决。
https://stackoverflow.com/questions/6714966
复制相似问题