# Основы
В админ-панели MoonShine реализована система аутентификации. По умолчанию она включена,
но если нужно разрешить доступ для всех пользователей,
то ее можно отключить в файле конфигурации config/moonshine.php
.
return [ // ... 'auth' => [ 'enable' => true, // ... ], // ...];
![](https://moonshine-laravel.com/screenshots/login.png)
# Расширение возможностей
Если используете собственный guard, provider, то их можно переопределить в конфигурации,
а также модель 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
.
Возможно изменить Guard в Profile компоненте.
Profile::make(guard: 'custom')
MoonShineAuth::guard('custom')->user()
# Pipelines
В админ-панели MoonShine существует возможность добавлять логику в процесс аутентификации, что в процессе позволит изменить объект запроса или ответа.
Для этого необходимо указать ваши Pipelines в файле конфигурации config/moonshine.php
.
return [ 'auth' => [ 'pipelines' => [ PipelineClass::class ], ]];
или
return [ 'auth' => [ 'pipelines' => [ new class { public function handle($request, $next) { return $next($request); } } ], ]];