我試圖弄清楚如何在建立 WebSocket 連接后將帶有授權(quán)令牌的標(biāo)頭添加到該連接中?;旧?,使用 cookie 來(lái)驗(yàn)證連接中的每條消息。Websockets 客戶端 API 中的 HTTP 標(biāo)頭已經(jīng)有一個(gè)很好的討論,但它并沒(méi)有真正幫助我。其中一項(xiàng)建議是:document.cookie?=?'X-Authorization='?+?token?+?';?path=/';不幸的是,它對(duì)我沒(méi)有幫助。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 個(gè)元素的地圖。建立連接后是否可以更改 WebSocket 連接標(biāo)頭?如果我每次都進(jìn)行身份驗(yàn)證,我是否需要向 WebSocket 連接添加授權(quán)令牌,或者僅在重新建立連接時(shí)有用,而在事后進(jìn)行無(wú)用的檢查?
1 回答

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