В этому уроке я расскажу вам, как заменить функциональность устаревшего пакета laravel/ui новым пакетом Laravel Fortify.
Проблема с Jetstream (думаю, многие считают также) в том, что зачастую нужен просто каркас аутентификации без Inertia.js и Livewire. Не поймите неправильно, мне нравится работать с Inertia или Livewire, но иногда просто нужна аутентификация. Да, laravel/ui всё ещё можно использовать в Laravel 8, но я хочу восстановить эту функциональность без этого пакета. Я опишу все свои шаги и добьюсь аналогичного функционала с помощью Laravel Fortify.
Настройка проекта
laravel new laravel-fortify-democomposer require laravel/fortifyphp artisan vendor:publish --provider="Laravel\\Fortify\\FortifyServiceProvider"настройка базы данныхphp artisan migrate
Настройка Fortify
Откройте config/app.php и зарегистрируйте сервис-провайдера Fortify:
App\Providers\FortifyServiceProvider::class,
Затем откройте config/fortify.php и обновите свой массив features следующим образом:
'features' => [
Features::registration(),
Features::resetPasswords(),
],
Теперь нам нужно рассказать Fortify, где находятся наши шаблоны аутентификации. Откройте app/Providers/FortifyServiceProvider.php и в методе boot добавьте:
Fortify::loginView(function () {
return view('auth.login');
});
Fortify::registerView(function () {
return view('auth.register');
});
Fortify::requestPasswordResetLinkView(function () {
return view('auth.forgot-password');
});
Fortify::resetPasswordView(function () {
return view('auth.reset-password');
});
Создание шаблонов
Нам нужно 4 blade-файла:
resources/views/auth/forgot-password.blade.phpresources/views/auth/login.blade.phpresources/views/auth/register.blade.phpresources/views/auth/reset-password.blade.php
Я «позаимствовал» их из пакета laravel/ui, вы можете взять их здесь.
Защита страниц
Теперь нам нужно защитить наши маршруты. Откройте routes/web.php и использовать мидлвар auth:
Route::get('/', function () {
return view('welcome');
})->middleware(['auth']);
Заключение
Мы воссоздали функционал базовой регистрации, логина и сбороса пароля. Fortify имеет интересную функцию проверки электронной почты, если вам интересно, вы посмотрите документацию пакета.
GitHub репозиторий
https://github.com/skydiver/laravel-fortify-demo
Автор: Martin M.
Перевод: Алексей Широков
Наш Телеграм-канал — следите за новостями о Laravel.
