網頁

2022/12/15

WebSocket JWT Token怎麼帶?

前端與後端WebSocket server連線時,使用JavaScript的WebSocket API來進行連線如何夾帶token?


基於安全考量,前端client與後端WebSocket server連線時需要帶驗證token如JWT Token,然而JavaScript WebSocket API並沒有提供設定Request Headers的介面來設定Authorization HeaderBearer Token,因此可以透過URI Query Parameter的方式在WebSocket資源位址後以access_token=<token>把token傳至後端進行連線前的驗證。

例如下面為請求WebSocket連線ws://server.example.com/websocket_resource及挾帶的access_token

ws://server.example.com/websocket_resource?access_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2NzExMjQyNTcsImlzcyI6Im3jbG31ZCIsInN6YiI6Im0hbG94ZCIsImRhdGEiOnsiY22tcGFueUlkIjoiYjhhMDE5MWUtMDY4Zi00NDQyLTlhOTgtYzE2YWM3YmRhNDM2IiwiY29tcGFueUtpbmQiOiJvcmciLCJjb21wYW55VHlwZSI6ImN1c3RvbWVyIiwiZW2haWwiOiJsZW5baHVuz0BpZGNsZ2J2bWNlcy5uZXQiLCJpc09ubHlSZWFkIjpmYWxzZSwic3RhdGUiOiJFTkFCTEUiLCJzdXBwb3J0Q29tcGFueUlkIjoiIiwic3VwcG9ydENvbXBhbnlUeXBlIjoiIiwic3VwcG9ydFVzZXJJZCI6IiIsInN1cHBvcnRVc2VybmFtZSI6IiIsInRva2VuS2luZCI6ImFjY2VzcyIsInVzZXJJZCI6IjY2MDE0MTJiLWJiZWUtNDNkNy1hMTljLWM4NzdkYzE2YjZkNiIsInVzZXJLaW5kIjoiaW50ZXJuYWwiLCJ1c2VybmFtZSI6IiBsZW1ua2VzZyJ9fQ.NuOXptjGhZ_6Lzfp45KIvhs_wdtNKjhkMGPU7Tcx-00


沒有留言:

張貼留言