问题描述
我已经创建了一个通知系统,其中包含所有设置,并且在向推杆发送通知时可以正常工作。但是,当我尝试在私人频道上收听时,会出错。
这是我的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
}
}
});
<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中设置了路由,因此出现了问题