Laravel Nova Error 403 Page On Laravel Forge

Я развернул свое приложение Laravel с Laravel Nova в Laravel Forge. Я установил Nova с хранилищем путей, у меня также есть пользователь Nova. Я заменил метод NovaServiceProvider Gate следующим образом:

 Gate::define(‘viewNova’, function ($user) {

     return in_array($user->email, [

         ‘my@license.com’,

     ]);

 });

Когда я захожу на страницу "/nova", есть форма для входа, но когда я пытаюсь войти в систему с моим существующим пользователем, она переходит на страницу ошибки 403 с сообщением "Извините, вам запрещен доступ к этой странице"

Единственная статья, которую я нашел, это " Общие проблемы при настройке Laravel Nova" на Medium.

Проблема № 2: похоже, моя проблема, но это не так. Я думаю, что моя проблема связана с лицензией, иначе я все перепробовал.

У меня есть сольная лицензия Nova, и я не должен спрашивать их по электронной почте в службу поддержки.

У меня есть: Laravel 5.7 и нова: 1.3.1

Мой вопрос: я должен купить профессиональную лицензию? и почему? Или в чем проблема?

1 ответ

Это часто происходит, если вы развернули в производственной среде и еще не настроили Gate Guard. Nova защищает себя от входа в производственную среду. См. Эту часть документации, чтобы прояснить это:

https://nova.laravel.com/docs/1.0/installation.html

TL;DR - Добавить:

protected function gate()
{
    Gate::define('viewNova', function ($user) {
        return in_array($user->email, [
            'your@emails.com',
            'login@emails.com',
        ]);
    });
}

к app/Providers/NovaServiceProvider.php

Кроме того, нужно помнить о некоторых предметах домашнего обихода:

php artisan nova:install
php artisan key:generate
php artisan config:cache

После этого у вас будет новый ключ в вашем файле среды, и ваши леса nova будут установлены, кеш конфигурации также будет очищен, что часто может вызывать удары на дороге.

Я считаю, что ваша проблема (если это не код на самом деле работает), связана с а также символы вокруг адреса электронной почты, который вы авторизуете и что передается define(), Пытаться ' или же " вместо этого - PHP понимает те, а не предыдущие символы.

 Gate::define('viewNova', function ($user) {
     return in_array($user->email, [
         'my@license.com',
     ]);
 });

Это распространенная ошибка, если вы копируете / вставляете текстовые редакторы, такие как Microsoft Word, или копируете из онлайн-источников!

Другие вопросы по тегам