Краткое содержание
- Вступление
- Что такое Laravel Breeze?
- Обзор возможностей аутентификации Laravel.
- Установка
- Обсудить Войти
- Обсудить регистрацию
- Обсудить сброс пароля
- Обсудить подтверждение электронной почты
- Обсудить подтверждение пароля
Вступление
Laravel 8 внес много улучшений в Laravel и намного больше пакетов, которые нужно изучить и освоить.
Одним из наиболее заметных пакетов является Laravel Breeze, красиво оформленный стартовый комплект приложений для Laravel 8, в котором реализована аутентификация и авторизация.
Если вы раньше использовали Laravel Jetstream, вы заметите, что он немного утомителен и требует сложного обучения.
Следовательно, Laravel Breeze был разработан, чтобы вы могли быстро и просто настроить.
В этой статье мы рассмотрим все, что вам нужно для освоения Laravel Breeze. Мы рассмотрим руководство по установке и обсудим различные процессы аутентификации, созданные с помощью Laravel Breeze. В конце концов, вам будет комфортно использовать Laravel Breeze.
Более обновленную версию этой статьи можно найти здесь.
Что такое Laravel Breeze
Laravel Breeze - это новые строительные леса Laravel Auth, которые обладают еще большим количеством функций и простотой. В Laravel Breeze встроены все функции аутентификации Laravel, а также наш любимый стиль Tailwind CSS и стилизованные шаблоны лезвий.
Обзор возможностей аутентификации Laravel
Laravel breeze создает все контроллеры, маршруты и представления, необходимые для установки и настройки функций аутентификации, таких как вход в систему, регистрация, забытый пароль, сброс пароля, проверка электронной почты и подтверждение пароля.
Одно из отличий Laravel Breeze от других - это введение Tailwind CSS прямо из коробки.
Кроме того, Laravel представил множество стартовых наборов приложений, из-за чего сложно понять, какой из них для чего используется.
Давайте разберемся немного с каждым из них:
Laravel JetStream
Laravel JetStream - это более надежный каркас приложений с большим количеством функций и дополнительными стеками интерфейсных технологий.
Laravel JetStream - это законченное приложение и каркас аутентификации с дополнительными функциями, такими как двухфакторная аутентификация, управление сеансом, дополнительное командное управление, включая все функции Laravel Breeze.
Он также разработан с использованием Tailwind CSS, и вы можете выбрать инерцию или livewire для внешних строительных лесов.
Вы можете узнать больше о Laravel Jetstream здесь.
Laravel Sanctum
Laravel Sanctum - это платформа аутентификации для одностраничных приложений (SPA) и API.
Laravel Sanctum решает две конкретные проблемы: управление токенами API путем выдачи токенов пользователям, использующим OAuth и SPA, с помощью встроенных служб аутентификации сеансов Laravel на основе файлов cookie для аутентификации SPA.
Вы можете прочитать больше о Laravel Sanctum здесь.
Далее мы рассмотрим Laravel Breeze и то, как работает процесс аутентификации:
Установка Laravel Breeze
Чтобы установить Laravel Breeze, вам необходимо установить и настроить Laravel; вы можете прочитать Учебник по Laravel: полное руководство 2021.
Если у вас уже установлен Laravel, давайте запустим следующие сценарии для установки и настройки Laravel Breeze.
composer require laravel/breeze --dev
php artisan breeze:install
npm install npm run dev php artisan migrate
Вот и все, что вам нужно сделать:
Объяснение процесса входа в систему
Процесс входа в систему из Laravel Breeze довольно прост, современен и применен к нему принцип чистого кода.
Давайте разберемся, как строится процесс входа в систему:
Во-первых, перейдите к resources/views/auth/login.blade.com
, чтобы просмотреть содержимое формы входа, разработанной и стилизованной с помощью Tailwind CSS, вы, конечно, можете настроить ее в соответствии со своим дизайном.
При нажатии кнопки отправки запрос отправляется из нового routes/auth.php
файла /login
маршрута вниз к store
method нового AuthenticatedSessionController.php
файла в ../Controllers/Auth
папке.
Если вы посмотрите на store
method, многое изменилось, но основная логика входа и проверки находится в $request->authenticate()
method, который расположен в app/Http/Requests/Auth/LoginRequest.php
Вы можете очень хорошо изучить кодовую базу, но она просто проверяет пользователя и пытается аутентифицировать пользователя.
Объяснение процесса регистрации
Процесс регистрации и логика довольно просты и понятны.
Сначала перейдите к resources/views/auth/register.blade.com
, чтобы просмотреть содержимое регистрационной формы, разработанное и стилизованное с помощью Tailwind CSS. Вы можете настроить его или добавить дополнительные поля ввода в соответствии с вашим дизайном.
При нажатии кнопки отправки запрос отправляется из нового routes/auth.php
файла /register
маршрута вниз к store
методу нового RegisteredUserController.php
файла в ../Controllers/Auth
папке.
store
method проверяет вводимые пользователем данные и создает нового пользователя на основе предоставленной информации.
/** * Handle an incoming registration request. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\RedirectResponse * * @throws \Illuminate\Validation\ValidationException */ public function store(Request $request) { $request->validate([ 'name' => 'required|string|max:255', 'email' => 'required|string|email|max:255|unique:users', 'password' => 'required|string|confirmed|min:8', ]); Auth::login($user = User::create([ 'name' => $request->name, 'email' => $request->email, 'password' => Hash::make($request->password), ])); event(new Registered($user)); return redirect(RouteServiceProvider::HOME); }
Вы можете настроить код в соответствии с вашими настраиваемыми полями ввода.
Объяснение процесса сброса пароля
Логика сброса пароля такая же, как и раньше, но с небольшим отличием состоит в том, что электронное письмо для сброса пароля отправляется с ../Controllers/Auth/PasswordResetLinkController.php
по методу store
.
public function store(Request $request) { $request->validate([ 'email' => 'required|email', ]); $status = Password::sendResetLink( $request->only('email') ); return $status == Password::RESET_LINK_SENT ? back()->with('status', __($status)) : back()->withInput($request->only('email')) ->withErrors(['email' => __($status)]); }
Затем, когда пользователь щелкает ссылку в своем электронном письме, Laravel показывает форму для заполнения нового пароля, при отправке запрос отправляется store
методу в NewPasswordController.php
, где он обрабатывается.
Вы можете взглянуть на то, как Laravel обрабатывает логику.
Объяснение процесса проверки электронной почты
Обработка проверки электронной почты с помощью Laravel breeze очень элегантна; после нажатия кнопки «Отправить» или «Отправить повторно» Laravel вызывает store
метод в EmailVerificationNotificationController.php
, чтобы отправить ссылку для подтверждения.
Laravel отправляет запрос VerifyEmailController.php
и вызывает метод __invoke
magic для выполнения проверки при нажатии на ссылку.
Объяснение процесса подтверждения пароля
Laravel Breeze представляет новую функцию аутентификации под названием Подтверждение пароля.
С помощью этой новой функции вы можете разрешить пользователям подтверждать свой пароль перед выполнением таких опасных действий, как изменение паролей, удаление своей учетной записи, вывод средств из кошелька и т. Д.
Давайте исследуем логику:
Форма подтверждения пароля создается в resources/views/auth/confirm-password.blade.php
запрос для ввода пароля.
Запрос отправляется store
методу в ../Controllers/Auth/ConfirmablePasswordController.php
, где записана логика.
Итак, у вас есть обзор Laravel Breeze, вновь созданных контроллеров, маршрутов и представлений, а также того, что они делают и где найти любую логику во время процесса аутентификации.
Заключение
Более обновленную версию этой статьи можно найти здесь.
До сих пор мы исследовали Laravel Breeze и объяснили различные потоки аутентификации и где найти различные логики.
Недавно представленная функция аутентификации является важной функцией для защиты защищенной области или ограниченных действий.