我试图弄清楚如何在建立 WebSocket 连接后将带有授权令牌的标头添加到该连接中。基本上,使用 cookie 来验证连接中的每条消息。Websockets 客户端 API 中的 HTTP 标头已经有一个很好的讨论,但它并没有真正帮助我。其中一项建议是:document.cookie = 'X-Authorization=' + token + '; path=/';不幸的是,它对我没有帮助。func handler(ws *websocket.Conn, h *Hub) { go h.run() h.addClientChan <- ws for { config := ws.Config() fmt.Println("Headers length:", len(config.Header)) ...在添加 cookie 之前和之后显示包含 0 个元素的地图。建立连接后是否可以更改 WebSocket 连接标头?如果我每次都进行身份验证,我是否需要向 WebSocket 连接添加授权令牌,或者仅在重新建立连接时有用,而在事后进行无用的检查?
1 回答

侃侃尔雅
TA贡献1801条经验 获得超16个赞
建立连接后是否可以更改 WebSocket 连接标头?
您无法在收到 WebSocket 消息时设置 cookie。一旦建立了WebSocket连接,它就是一个开放的TCP套接字,并且协议不再是http,因此没有内置的方式来交换cookie。
您可以在第一个 http 请求上使用授权,双方建立用于交换数据的协议。
- 1 回答
- 0 关注
- 228 浏览
添加回答
举报
0/150
提交
取消