2 ответа

Ответить
1

Скорее всего проблема в том, что на хостинге закешированы старые конфиги или права. Попробуй php artisan config:clear и php artisan cache:clear, у меня именно это помогло. Если не поможет — проверь, точно ли авторизация вызывается для API запросов, а не для SSR.

0

Начните с проверки, что политика вообще зарегистрирована. В Laravel автообнаружение работает по соглашению имён, но на некоторых хостингах из-за настроек кеша или opcache класс может не подхватиться. Выполните `php artisan route:list` и проверьте через tinker: `Gate::abilities()` — увидите список доступных прав. Убедитесь, что в `AuthServiceProvider` есть `Gate::policy(...)` или классы лежат в правильных папках.

Для API не забывайте про middleware `auth:api` или `auth:sanctum`: без них `$user` будет null, и все проверки вернут false. Также обратите внимание на `Gate::before` — обычно его используют для суперпользователя, но если он написан с ошибкой, это может блокировать все остальные проверки.

Имейте в виду: policy и gate работают только на сервере. Во Vue нужно передавать права через API, например, включить их в ответ аутентификации, иначе фронтенд просто не знает о них.

Ваш ответ

Минимум 20 символов (0/20)

, чтобы ответ был привязан к аккаунту

Похожие вопросы