...
WEB и WordPress новости, темы, плагины. Здесь мы делимся советами и лучшими решениями для сайтов.

Система регистрации и входа пользователей в Laravel

488

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

На этом этапе пользователи могут создать свою учетную запись и войти на сайт. Но, как я упоминал выше, прежде чем пользователь сможет получить доступ к системе, он должен подтвердить свою учетную запись.

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

подтверждение адреса электронной почты

При построении системы регистрации при регистрации пользователя вы отправляете пользователям ссылку для активации. Эта ссылка активации будет использоваться для проверки учетной записи пользователя. Как только пользователь нажимает ссылку активации, мы делаем этого пользователя активным. Другими словами, после проверки учетной записи пользователь может просматривать страницы вашего приложения.

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

После отправки формы вы получите ссылку для подтверждения на свой адрес электронной почты:

Система регистрации и входа пользователей в Laravel

Обратите внимание, Laravel позволяет вам войти в свою учетную запись, даже если вы еще не подтвердили ее. Но вы не можете получить доступ к защищенному маршруту.

Я добавил промежуточное ПО для маршрута profile. Без проверки учетной записи, если вы попытаетесь посетить страницу http: // localhost: 8000 / profile, она будет перенаправлена ​​на URL- адрес http: // localhost: 8000 / email / verify.

Система регистрации и входа пользователей в Laravel

Идите вперед и подтвердите свою учетную запись. Проверьте таблицу «Пользователи» в базе данных, и вы увидите email_verified_atзаполненный столбец с датой и временем активации. Это означает, что вы успешно подтвердили свою учетную запись. Теперь у вас должен быть доступ к защищенным маршрутам.

Надеюсь, вы понимаете, как использовать систему регистрации и входа пользователей в Laravel. Пожалуйста, поделитесь своими мыслями и предложениями в комментарии ниже.

Статьи по Теме

Источник записи: artisansweb.net

Этот веб-сайт использует файлы cookie для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее