广播身份验证在 Laravel 8 中不起作用

时间:2020-12-31 12:37:48

标签: laravel laravel-routing laravel-8 laravel-authentication laravel-broadcast

我在不同的路线上广播通知。我的系统有两种类型的用户,这就是我在 BroadCastServiceProvider 中使用两个中间件的原因。

public function boot()
{
    Broadcast::routes(['middleware' => ['web', 'auth:customer']]);

    require base_path('routes/channels.php');
}

渠道路线

Broadcast::channel('App.Models.Admin.Staff.{id}', function ($user, $id) {
    return (int)$user->id === (int)$id;
});

Broadcast::channel('App.Models.Admin.Contact.{id}', function ($user, $id) {
    return (int)$user->id === (int)$id;
});

给出此错误的路由。

<块引用>

app.js:25170 POST http://localhost:8000/broadcasting/auth 403 (禁止)

当我从路由通道返回 true 时,它可以像这样正常工作。

Broadcast::channel('App.Models.Admin.Staff.{id}', function ($user, $id) {
    return true;
});

Broadcast::channel('App.Models.Admin.Contact.{id}', function ($user, $id) {
    return true;
});

当我不在 BroadcastServiceProvider 中使用中间件时,它适用于一种类型的用户,但不适用于其他类型的用户。

public function boot()
{
    Broadcast::routes();

    require base_path('routes/channels.php');
}

我该如何解决这个问题?我检查了以下内容,但在我的情况下不起作用。

laravel broadcasting for multiple guard

0 个答案:

没有答案