Php 拉威尔回声&x2B;VueJS广播/身份验证问题
我使用Laravel Echo和pusher作为我的服务器。它已经在公共频道上运行 这是我的拉威尔回声听众的照片 现在我的问题是,当我使用PrivateChannel时,当我在PrivateChannel中侦听时,会弹出以下错误: POST 500(内部服务器错误) 在控制台/网络选项卡中的错误中,它表示未定义路由[登录] 这是控制台/网络内部的图像 我所做的事情: -config/App.php中未注释的App\Providers\BroadcastServiceProvider::class -添加了广播::路由(['middleware'=>['auth:api']]);在BroadcastServiceProvider.php中 -使用Echo.private('channel-name')代替Echo.channel('channel-name')监听专用频道 -将authEndpoint:“”添加到bootstrap.js(这是我的Echo选项所在的位置) -在my channels.php()中添加了一个频道(可能是专用频道) -在我的主刀片中添加了csrf令牌元标记 在推送服务器中,它在触发事件时接收事件,下面是Php 拉威尔回声&x2B;VueJS广播/身份验证问题,php,laravel,vue.js,pusher,pusher-js,Php,Laravel,Vue.js,Pusher,Pusher Js,我使用Laravel Echo和pusher作为我的服务器。它已经在公共频道上运行 这是我的拉威尔回声听众的照片 现在我的问题是,当我使用PrivateChannel时,当我在PrivateChannel中侦听时,会弹出以下错误: POST 500(内部服务器错误) 在控制台/网络选项卡中的错误中,它表示未定义路由[登录] 这是控制台/网络内部的图像 我所做的事情: -config/App.php中未注释的App\Providers\BroadcastServiceProvider::class
所以问题是,当我收听私人频道时,会弹出错误,但收听公共频道时一切正常,我不太确定如何评估此问题。您必须通过pusher请求传递auth头,如下所示
window.Echo = new Echo({
broadcaster: 'pusher',
key: 'APP_KEY',
authEndpoint: '/broadcasting/auth'
auth: {
headers: {
'Authorization': 'Bearer your_api_Toke',
'X-CSRF-Token': "CSRF_TOKEN"
}
}
});
有关详细信息:
您能展示一下您的routes/channels.php文件吗?您是否在基本布局页面中添加了CSRF Token meta tag字段?@Md.MirajKhan请在邮件中查看照片您使用API Auth登录了吗?@Md.MirajKhan我使用Laravel Passport进行API身份验证,该验证使用了Auth API middlewareso,然后您必须使用推送路由。要补充一点,如果在后端使用Laravel API,在前端使用Vue,您可能根本不想使用CSRF_令牌。因此,从前端和laravel的标题中删除它,转到app/Http/Middleware/VerifyCsrfToken.php并将“broadcasting/auth”添加到$except[]。也可以这样做测试,直到你得到所有其他工作。