Как избежать ошибки консоли 403, когда серверная часть не возвращает возврат

#laravel #axios #console.log #jqxhr #laravel-broadcast

#ларавель #аксиос #консоль.журнал #jqxhr #laravel-трансляция

Вопрос:

Если я настрою свой канал таким образом, я получу ошибку консоли 403.
примечание:: if ($user->status) не является reg.

 Broadcast::channel('using', function ($user) {
    if($user->status=='reg'){
       return $user->id;
    }
});
 

Если я настрою свой канал таким образом, все в порядке.

 Broadcast::channel('using', function ($user) {
    if($user->status=='reg'){
        return $user->id;
    }else{
        return 'invalid';
    }
});
 

Но мне нужно настроить свой канал, когда $user->status не является reg, я не хочу давать никакой отдачи.
Проблема в том, что если я не даю никакого возврата, я получаю ошибку консоли 403.
Извините за мое знание английского

Ответ №1:

Данные, возвращенные обратным вызовом авторизации, будут доступны для прослушивателей событий канала присутствия в вашем приложении JavaScript. Если пользователь не авторизован для подключения к каналу присутствия, вы должны вернуть false или null:

https://laravel.com/docs/8.x/broadcasting#authorizing-presence-channels

Для $user->status isn’t reg вам не нужно возвращать полезную нагрузку данных. Вы только возвращаете false или null .

Комментарии:

1. Если я возвращаю false или null, я получаю ошибку консоли 403 от серверной части. Поскольку пользователь уже вошел в систему, но статус не получил разрешение. Поэтому я не хочу давать никакого повторного запуска. Теперь я использовал $user->status не «редж», а «я звоню die() «.