Система реєстрації та входу користувачів в 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
- Як створити Honeypot для боротьби зі спамом у Laravel