无法使用laravel和vue js听推杆专用频道

问题描述

我已经创建了一个通知系统,其中包含所有设置,并且在向推杆发送通知时可以正常工作。但是,当我尝试在私人频道上收听时,会出错。

这是我的bootstrap.js文件laravel-echo代码

    import Echo from 'laravel-echo';

    window.Pusher = require('pusher-js');
    let token = document.head.querySelector('Meta[name="csrf-token"]').content;
    window.Echo = new Echo({
        broadcaster: 'pusher',key: process.env.MIX_PUSHER_APP_KEY,cluster: process.env.MIX_PUSHER_APP_CLUSTER,forceTLS: true,auth: {
            headers: {
              'X-CSRF-Token': token
            }
          }
      
    });

这是我的主要html元标记内容

 <Meta name="csrf-token" content="{{ csrf_token() }}">
 <Meta name="user-id" content="{{Auth::check() ? Auth::user()->api_token:''}}">

这是在app.js中监听的代码

let userId = document.head.querySelector('Meta[name="user-id"]').content;
Echo.private('App.User.' + userId)
    .notification((notification) => {
        console.log(notification.type);
    });

这是我在控制台上遇到的错误

POST http:// localhost:3000 / broadcasting / auth 419(未知状态)

预先感谢

解决方法

Laravel使用错误代码419指示您的CSRF令牌无效或丢失。您应该确保将正确的令牌传递给身份验证端点。

,

我知道了。由于在BroadcastServiceProvider.php中设置了路由,因此出现了问题