Laravel Echoで認証を必要とするBroadcast(PrivateやPresence)を受け取る際に、SPAなどの環境ですと、認証はAPI経由(Laravel Passport)で行っていたりするケースもあると思います。
その場合は、以下を対応するとうまくいきます。
Providers/BroadcastServiceProvider.php
Broadcast::routes(['middleware' => 'auth:api']);
xxx.js
// Laravel EchoのヘッダーにAuthヘッダーを付ける
Echo.connector.pusher.config.auth.headers['Authorization'] = `Bearer ${token}`;
Echo.join('chatroom')
.listen('MessagePosted', e => console.log(e) });
Laravelでチャットを作る時は以下のYoutubeが参考になります
https://www.youtube.com/watch?v=iiBcOKYxd0Q