簡體   English   中英

訂閱私人頻道時出現Pusher / Laravel回顯錯誤:訂閱頻道的Auth值無效:格式應為“ key:signature”

[英]Pusher/Laravel echo error on subscribing to private channel: Auth value for subscription to channel is invalid: should be of format 'key:signature'

我在使用React應用程序中的 PusherJS訂閱私有頻道時遇到麻煩。

后端是Laravel,但我很確定后端/前端技術不會導致此問題。

我正在使用JWT令牌進行身份驗證,並且該部分似乎一切正常。 整個應用程序運行良好,但是我正在嘗試向系統添加套接字。

我將在此處提供后端和前端代碼段,因為我可以肯定它們中的錯誤所在。

前端

const Socket = new Echo({
  broadcaster: 'pusher',
  key: config.pusher.key,
  cluster: config.pusher.cluster,
  authEndpoint: config.pusher.authEndpoint,
  forceTLS: config.pusher.tls,
  auth: {
    headers: {
      Authorization: `Bearer ${token}`,
    },
  },
});

Socket.private('users.1').listen('newMessage', (data) => {
    console.log(data);
})

后端身份驗證端點

public function authorize(Request $request) {
    echo Pusher::socket_auth($request->get('channel_name'), $request->get('socket_id'));
    return;
}

auth端點有效,返回數據如下:

{auth: ":2535a2ea3a1ee8f461ceef3a95095518c0205949aa981e6f2xxxxx"}

在控制台中,我可以看到前端應用程序已成功連接Pusher

Pusher:狀態已更改:正在連接->已連接新的套接字ID xxxxxx.xxxxxx

但是訂閱失敗

Pusher:發送的事件:{“ event”:“ pusher:subscribe”,“ data”:{“ auth”:“:2535a2ea3a1ee8f461ceef3a9​​5095518c0205949aa981e6f2xxxxx”,“ channel”:“ private-users.1”}}

Pusher:事件recd:{“事件”:“推送器:錯誤”,“數據”:{“代碼”:null,“消息”:“訂閱私人用戶的驗證值無效。1的格式無效:鍵:簽名'“}}

Pusher:錯誤:{“ type”:“ WebSocketError”,“ error”:{“ type”:“ PusherError”,“ data”:{“ code”:null,“ message”:“用於訂閱私人用戶的身份驗證值.1無效:格式應為'key:signature'“}}}

我嘗試僅使用PusherJS軟件包 ,但遇到了相同的問題。 現在我嘗試使用Laravel Echo,結果是一樣的。 同樣重要的是,當我訂閱一個非私人頻道時,訂閱有效,並且可以通過該頻道成功接收消息。

Pusher調試日志僅告訴我同一件事:

訂閱private-users.1的Auth值無效:格式應為“ key:signature”

我已經調試了幾個小時,不知道從這里去哪里。

您的auth端點似乎沒有正確響應。 您的密鑰,機密和appID是否在服務器端正確配置? 集群怎么樣? 這個服務器和客戶端配置正確嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM