我試圖弄清楚如何在建立 WebSocket 連接后將帶有授權(quán)令牌的標(biāo)頭添加到該連接中?;旧?,使用 cookie 來驗(yàn)證連接中的每條消息。Websockets 客戶端 API 中的 HTTP 標(biāo)頭已經(jīng)有一個很好的討論,但它并沒有真正幫助我。其中一項(xiàng)建議是: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 連接標(biāo)頭?如果我每次都進(jìn)行身份驗(yàn)證,我是否需要向 WebSocket 連接添加授權(quán)令牌,或者僅在重新建立連接時有用,而在事后進(jìn)行無用的檢查?
1 回答

侃侃爾雅
TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超16個贊
建立連接后是否可以更改 WebSocket 連接標(biāo)頭?
您無法在收到 WebSocket 消息時設(shè)置 cookie。一旦建立了WebSocket連接,它就是一個開放的TCP套接字,并且協(xié)議不再是http,因此沒有內(nèi)置的方式來交換cookie。
您可以在第一個 http 請求上使用授權(quán),雙方建立用于交換數(shù)據(jù)的協(xié)議。
- 1 回答
- 0 關(guān)注
- 206 瀏覽
添加回答
舉報
0/150
提交
取消