Система регистрации и входа пользователей в Laravel
Laravel предоставляет встроенную систему регистрации пользователей и входа в систему. Большинство разработчиков не знают об этой встроенной системе (я тоже был одним из них). Когда я узнал об этой функции, я был удивлен. Это экономит много времени от создания системы входа и регистрации с нуля.
В этой статье мы изучаем систему регистрации и входа пользователей в Laravel – встроенную функцию, предоставляемую самим Laravel.
Как мы все знаем, процесс входа в систему и регистрации описан ниже, и обычно его необходимо интегрировать.
- Пользователь создает учетную запись
- Ссылка для подтверждения будет отправлена на адрес электронной почты пользователя.
- Как только пользователь нажимает ссылку подтверждения, они активируются в вашей системе.
- Пользователь входит на ваш сайт и получает доступ к страницам
Все вышеперечисленные шаги описаны в Laravel. Вам не нужно писать код, чтобы построить эту систему создания пользователей.
Сказав это, давайте взглянем на систему регистрации и входа пользователей в Laravel.
Начиная
Для начала вы должны быть готовы к проекту Laravel. Если у вас его нет, создайте его, выполнив команду:
composer create-project --prefer-dist laravel/laravel laravel-dev
Здесь laravel-dev – название проекта Laravel. Пользователь может изменить это имя.
Затем вам нужно интегрировать аутентификацию Laravel. Перейдите в корневой каталог проекта в терминале и выполните следующие команды одну за другой:
composer require laravel/ui --dev
php artisan ui vue --auth
npm install && npm run dev
Эти команды создадут контроллеры аутентификации, такие как LoginController.php
, RegisterController.php
и т.д., Которые вы найдете в app/Http/Controllers/Auth
каталоге. Он также создает взгляды login.blade.php
, register.blade.php
под resources/view/auth
каталогом.
Вышеупомянутые команды также создают app.blade.php
файл в resources/views/layouts
каталоге. Это представление является базовым макетом приложения. Он использует фреймворк Bootstrap CSS, но пользователь может настроить его и изменить дизайн.
Запустите команду миграции, которая создаст таблицу пользователей в вашей базе данных.
php artisan migrate
Теперь, если вы запустите проект Laravel в браузере, вы увидите ссылки для входа в систему и формы регистрации.
На этом этапе пользователи могут создать свою учетную запись и войти на сайт. Но, как я упоминал выше, прежде чем пользователь сможет получить доступ к системе, он должен подтвердить свою учетную запись.
На следующем шаге мы увидим, как выполнить процесс проверки электронной почты пользователя.
подтверждение адреса электронной почты
При построении системы регистрации при регистрации пользователя вы отправляете пользователям ссылку для активации. Эта ссылка активации будет использоваться для проверки учетной записи пользователя. Как только пользователь нажимает ссылку активации, мы делаем этого пользователя активным. Другими словами, после проверки учетной записи пользователь может просматривать страницы вашего приложения.
Laravel предоставляет встроенную систему проверки электронной почты для нового зарегистрированного пользователя. Используя эту систему, зарегистрированный пользователь получит электронное письмо со ссылкой для активации. После активации учетной записи пользователь получит доступ к системе.
Откройте AppUser.php
файл и убедитесь, что модель «Пользователь» реализует IlluminateContractsAuthMustVerifyEmail
контракт.
<?php
namespace App;
use IlluminateContractsAuthMustVerifyEmail;
use IlluminateFoundationAuthUser as Authenticatable;
use IlluminateNotificationsNotifiable;
class User extends Authenticatable implements MustVerifyEmail
{
...
...
}
Как это работает? Если вы проверите файл миграции, таблица «пользователи» будет содержать email_verified_at
столбец. Этот столбец будет использоваться для проверки того, активировал ли пользователь свою учетную запись или нет. Если учетная запись активирована, в этом столбце должны быть указаны дата и время активации.
Когда вы запускаете команду аутентификации, она создает AuthVerificationController
класс, в котором написана логика для отправки проверочных ссылок и проверки электронных писем. Разработчик может проверить этот файл. Чтобы зарегистрировать необходимые маршруты для этого контроллера, запишите следующие маршруты в routes/web.php
файл.
Auth::routes(['verify' => true]);
Пользователь может защитить свои маршруты, которые должны находиться за логином. Чтобы защитить маршруты, вам нужно подать заявку middleware('verified')
на эти маршруты. После этого доступ к этим защищенным маршрутам будет доступен только для проверенных учетных записей.
Вы можете написать код для защиты маршрута следующим образом:
Route::get('profile', function() {
return '<h1>This is profile page</h1>';
})->middleware('verified');
Если вы хотите контролировать, куда перенаправить пользователя после проверки, откройте AuthVerificationController
файл. В файле есть переменная, $redirectTo
которая будет использоваться для перенаправления. Измените этот маршрут в соответствии с вашими требованиями.
protected $redirectTo = '/home';
Вход и регистрация пользователя
Теперь вы готовы протестировать систему входа и регистрации пользователей. Поскольку мы занимаемся процессом регистрации, ваша система должна иметь возможность отправлять электронные письма. Вы можете использовать SMTP-сервер Gmail для отправки электронных писем. Подробнее читайте в нашей статье Отправка электронной почты через SMTP-сервер Gmail в Laravel.
Запустите локальный сервер разработки с помощью команды:
php artisan serve
Создайте учетную запись пользователя на странице регистрации здесь – http: // localhost: 8000 / register
После отправки формы вы получите ссылку для подтверждения на свой адрес электронной почты:
Обратите внимание, Laravel позволяет вам войти в свою учетную запись, даже если вы еще не подтвердили ее. Но вы не можете получить доступ к защищенному маршруту.
Я добавил промежуточное ПО для маршрута profile
. Без проверки учетной записи, если вы попытаетесь посетить страницу http: // localhost: 8000 / profile, она будет перенаправлена на URL- адрес http: // localhost: 8000 / email / verify.
Идите вперед и подтвердите свою учетную запись. Проверьте таблицу «Пользователи» в базе данных, и вы увидите email_verified_at
заполненный столбец с датой и временем активации. Это означает, что вы успешно подтвердили свою учетную запись. Теперь у вас должен быть доступ к защищенным маршрутам.
Надеюсь, вы понимаете, как использовать систему регистрации и входа пользователей в Laravel. Пожалуйста, поделитесь своими мыслями и предложениями в комментарии ниже.
Статьи по Теме
- Интеграция платежного шлюза Authorize.Net в Laravel
- Как создать блог с Laravel
- Как создать приманку для борьбы со спамом в форме в Laravel