Основы
Админ-панель MoonShine имеет систему аутентификации. По умолчанию она включена, но если вам нужно разрешить доступ для всех пользователей, ее можно отключить в конфигурационном файле config/moonshine.php
.
return [ // ... 'auth' => [ 'enable' => true, // ... ], // ...];
Расширение возможностей
Если вы используете собственный guard, провайдер, то их можно переопределить в конфигурации, а также модель MoonshineUser
.
return [ // ... 'auth' => [ // ... 'middleware' => Authenticate::class, 'guard' => 'moonshine', 'guards' => [ 'moonshine' => [ 'driver' => 'session', 'provider' => 'moonshine', ], ], 'providers' => [ 'moonshine' => [ 'driver' => 'eloquent', 'model' => MoonshineUser::class, ], ], // ... ], // ...];
Форма входа
Вы можете полностью заменить форму входа на свою, просто заменив класс в конфиге на свой, а внутри реализовать FormBuilder
return [ // ... 'forms' => [ 'login' => LoginForm::class ], // ...];
Профиль
Вы можете полностью заменить страницу профиля на свою, просто заменив класс страницы в конфиге на свой
return [ // ... 'pages' => [ // ... 'profile' => ProfilePage::class ], // ...];
Вы можете переопределить поля профиля в конфигурационном файле config/moonshine.php
.
return [ // ... 'auth' => [ 'enable' => true, 'fields' => [ 'username' => 'email', 'password' => 'password', 'name' => 'name', 'avatar' => 'avatar' ], 'guard' => 'moonshine', // ... ], // ...];
Если вы не хотите использовать аватар, то укажите 'avatar'=>''
или 'avatar'=>false
.
В компоненте Profile есть возможность изменить Guard.
Profile::make(guard: 'custom')
MoonShineAuth::guard('custom')->user()
Пайплайны
В админ-панели MoonShine есть возможность добавить логику в процесс аутентификации, что позволит изменить объект запроса или ответа в процессе.
Для этого нужно указать свои Pipelines в конфигурационном файле config/moonshine.php
.
return [ 'auth' => [ 'pipelines' => [ PipelineClass::class ], ]];
или
return [ 'auth' => [ 'pipelines' => [ new class { public function handle($request, $next) { return $next($request); } } ], ]];