Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 拉威尔回声&x2B;VueJS广播/身份验证问题_Php_Laravel_Vue.js_Pusher_Pusher Js - Fatal编程技术网

Php 拉威尔回声&x2B;VueJS广播/身份验证问题

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

我使用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令牌元标记

在推送服务器中,它在触发事件时接收事件,下面是


所以问题是,当我收听私人频道时,会弹出错误,但收听公共频道时一切正常,我不太确定如何评估此问题。

您必须通过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[]。也可以这样做测试,直到你得到所有其他工作。