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, или копируете из онлайн-источников!