Краткое содержание

  • Вступление
  • Что такое 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 маршрута вниз к storemethod нового AuthenticatedSessionController.php файла в ../Controllers/Authпапке.

Если вы посмотрите на storemethod, многое изменилось, но основная логика входа и проверки находится в $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папке.

storemethod проверяет вводимые пользователем данные и создает нового пользователя на основе предоставленной информации.

/**
     * 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 и вызывает метод __invokemagic для выполнения проверки при нажатии на ссылку.

Объяснение процесса подтверждения пароля

Laravel Breeze представляет новую функцию аутентификации под названием Подтверждение пароля.

С помощью этой новой функции вы можете разрешить пользователям подтверждать свой пароль перед выполнением таких опасных действий, как изменение паролей, удаление своей учетной записи, вывод средств из кошелька и т. Д.

Давайте исследуем логику:

Форма подтверждения пароля создается в resources/views/auth/confirm-password.blade.phpзапрос для ввода пароля.

Запрос отправляется store методу в ../Controllers/Auth/ConfirmablePasswordController.php, где записана логика.

Итак, у вас есть обзор Laravel Breeze, вновь созданных контроллеров, маршрутов и представлений, а также того, что они делают и где найти любую логику во время процесса аутентификации.

Заключение

Более обновленную версию этой статьи можно найти здесь.

До сих пор мы исследовали Laravel Breeze и объяснили различные потоки аутентификации и где найти различные логики.

Недавно представленная функция аутентификации является важной функцией для защиты защищенной области или ограниченных действий.