Трансляция Laravel с Sanctum/ошибкой 403 [закрыто] ⇐ IOS
-
Гость
Трансляция Laravel с Sanctum/ошибкой 403 [закрыто]
Я использую приложение iOS Swift в качестве клиента. На своем сервере я использую Laravel 10 и Soketi для веб-сокетов. Вот моя полезная нагрузка:
{ "socket_id": "8881904647.5374495384", "channel_name": "private-5" } добавил промежуточное ПО в свой BroadcastServiceProvider.php:
публичная функция boot(): void { // Трансляция::routes(); Broadcast::routes(["промежуточное ПО" => "auth:sanctum"]); требуется base_path('routes/channels.php'); } BroadcastServiceProvider включен в мой app.php. php artisan маршрут: список показывает мне «Illuminate\Broadcasting › BroadcastController@authenticate». Телескоп сообщает мне, что пользователь 5 аутентифицирован. Однако в ответ я все равно получаю ошибку 403. Промежуточное программное обеспечение auth:sanctum не работало, поэтому я добавил собственное промежуточное программное обеспечение для широковещательной аутентификации:
публичный дескриптор функции (запрос $request, замыкание $next) { if ($request->hasHeader('Авторизация')) { $token = str_replace('Носитель', '', $request->header('Авторизация')); $accessToken = PersonalAccessToken::findToken($token); если (!$accessToken) { Log::info('Запрос BroadcastingAuth', [ 'url' => $request->url()]); return response()->json(['message' => 'Неаутентифицированный'], 401); } $user = $accessToken->токен; аутентификация()->логин($пользователь); Log::info('Пользователь BroadcastingAuth вошел в систему', [ 'url' => $request->url()]); } вернуть $next($request); } laravel.log показывает мне «Пользователь BroadcastingAuth вошел в систему», но запрос завершается с кодом состояния 403. Может кто-нибудь сказать мне, почему это происходит?
Я использую приложение iOS Swift в качестве клиента. На своем сервере я использую Laravel 10 и Soketi для веб-сокетов. Вот моя полезная нагрузка:
{ "socket_id": "8881904647.5374495384", "channel_name": "private-5" } добавил промежуточное ПО в свой BroadcastServiceProvider.php:
публичная функция boot(): void { // Трансляция::routes(); Broadcast::routes(["промежуточное ПО" => "auth:sanctum"]); требуется base_path('routes/channels.php'); } BroadcastServiceProvider включен в мой app.php. php artisan маршрут: список показывает мне «Illuminate\Broadcasting › BroadcastController@authenticate». Телескоп сообщает мне, что пользователь 5 аутентифицирован. Однако в ответ я все равно получаю ошибку 403. Промежуточное программное обеспечение auth:sanctum не работало, поэтому я добавил собственное промежуточное программное обеспечение для широковещательной аутентификации:
публичный дескриптор функции (запрос $request, замыкание $next) { if ($request->hasHeader('Авторизация')) { $token = str_replace('Носитель', '', $request->header('Авторизация')); $accessToken = PersonalAccessToken::findToken($token); если (!$accessToken) { Log::info('Запрос BroadcastingAuth', [ 'url' => $request->url()]); return response()->json(['message' => 'Неаутентифицированный'], 401); } $user = $accessToken->токен; аутентификация()->логин($пользователь); Log::info('Пользователь BroadcastingAuth вошел в систему', [ 'url' => $request->url()]); } вернуть $next($request); } laravel.log показывает мне «Пользователь BroadcastingAuth вошел в систему», но запрос завершается с кодом состояния 403. Может кто-нибудь сказать мне, почему это происходит?
Мобильная версия