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