Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.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 /在尝试向Sanctum进行身份验证时,广播/auth端点始终失败,并出现403(拒绝访问)错误_Php_Laravel_Broadcasting - Fatal编程技术网

Php /在尝试向Sanctum进行身份验证时,广播/auth端点始终失败,并出现403(拒绝访问)错误

Php /在尝试向Sanctum进行身份验证时,广播/auth端点始终失败,并出现403(拒绝访问)错误,php,laravel,broadcasting,Php,Laravel,Broadcasting,我还没有找到太多关于使用Sanctum专门认证广播的答案。我正在尝试实现一个向pusher广播的基本事件,但在尝试连接到/broadcasting/auth时,我一直遇到403错误。首先,是的,我在/config/app.php中取消了BroadcastServiceProvider的注释。以下是我的广播服务提供商的摘录: app/Providers/BroadcastServiceProvider.php class BroadcastServiceProvider extends Servi

我还没有找到太多关于使用Sanctum专门认证广播的答案。我正在尝试实现一个向pusher广播的基本事件,但在尝试连接到/broadcasting/auth时,我一直遇到403错误。首先,是的,我在/config/app.php中取消了BroadcastServiceProvider的注释。以下是我的广播服务提供商的摘录:

app/Providers/BroadcastServiceProvider.php

class BroadcastServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        Broadcast::routes(['middleware' => ['auth:sanctum']]);

        require base_path('routes/channels.php');
    }
}
我使用Sanctum进行身份验证,我的所有端点都位于api.php文件中。我不确定是否应该在那里声明Broadcast::routes,正如我看到一些人提到的那样,但我真的不知道它有什么区别,因为它仍然会给我同样的错误。我甚至不知道在这里调用auth:sanctum中间件是否有效。我的意思是,我知道它适用于我所有的api路由,但我不确定是否存在于这个提供程序文件中

我试图用Postman点击/broadcasting/auth端点,同时在请求中包含我的Sanctum授权头承载[token],但它只给了我一个403


有人能在这里给我指出正确的方向吗?

我也有类似的问题,但我可以通过在路由目录中的channel.php文件中添加我正在广播的频道来解决它

channel.php


如果删除此['middleware'=>['auth:sanctum']],是否不再删除403?
Broadcast::channel('request_channel.{device_id}', function ($user, $device_id) {
    return (int) $user->id === (int) \App\UserDevice::find($device_id)->user_id;
});