打开WebSocket连接的升级请求是标准的HTTP请求。在服务器端,我可以像其他任何请求一样验证请求。就我而言,我想使用承载身份验证。不幸的是,在浏览器中打开 Websocket 连接时无法指定标头,这会让我相信不可能使用承载身份验证来验证 Web 套接字升级请求。那么——我错过了什么,还是真的不可能?如果不可能,这是设计使然,还是浏览器对 websocket API 实现的公然疏忽?
该 API 允许您仅设置一个标头,即Sec-WebSocket 协议,即应用程序特定的子协议。您可以使用此标头来传递不记名令牌。例如:
new WebSocket("ws://www.example.com/socketserver", ["access_token", "3gn11Ft0Me8lkqqW2/5uFQ="]);
服务器预计接受其中一种协议,因此对于上面的示例,您可以仅验证令牌并使用标头进行响应Sec-WebSocket-协议=access_token.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)