2016-10-13 107 views
1

我目前正在爲統一引擎開發一個實時kik連接器。
要接收消息,我使用我的用戶名和密碼連接到websocket端點。
不幸的是,我每次都會收到錯誤403。

還有什麼我需要注意的嗎?錯誤403嘗試連接到websocket api時

一些例子:

$ curl -XPOST https://apiv2.unificationengine.com/v2/connection/list -u $USER_NAME:$PASSWORD --data "{}" -k -s | jq 
{ 
    "status": 200, 
    "info": "200 OK", 
    "connections": { 
    "kik": { 
     "uri": "kik://[email protected]" 
    } 
    } 
} 

的WebSocket:

$ wscat --auth "$USER_NAME:$PASSWORD" -c wss://apiv2.unificationengine.com/v2/ws/start 

error: Error: unexpected server response (403) 

回答

2

你使用這個庫? https://github.com/websockets/wscat

這個庫是否支持這種方式的驗證?

wscat --auth 「$ USER_NAME:$ PASSWORD」 -c WSS://apiv2.unificationengine.com/v2/ws/start

做了這項研究,wscat使用NPM WS,https://github.com/websockets/ws爲webscoket連接。

你可以嘗試頭部像這樣,檢查

var ws = new WebSocket('wss://apiv2.unificationengine.com/v2/ws/start', { 
    origin: 'https://apiv2.unificationengine.com', 
    headers: { Authorization: 'base64 auth' } 
}); 

您可以的NodeJS創建的base64 AUTH這樣

VAR AUTH = 「基本」 +新的緩衝區(USER_ACCESS_KEY + 「:」 + USER_ACCESS_SECRET)的ToString( 「BASE64」);

+0

好的,謝謝你解決了這個問題。這有點奇怪,因爲'wscat'使用完全相同的代碼來生成授權標頭:https://github.com/websockets/wscat/blob/master/bin/wscat#L189 – Martin

+0

經過一些更多的研究,我現在完全瞭解問題。如果沒有'origin'標頭,api不接受呼叫。當使用'wscat'時,你必須設置'--origin'選項 – Martin

+0

@Martin我正在使用統一API,但得到403錯誤。你能指導我如何在Curl內發送訪問令牌嗎? – Simer

相關問題