System rejestracji i logowania użytkownika w Laravel
Laravel zapewnia wbudowany system rejestracji i logowania użytkowników. Większość programistów nie zdaje sobie sprawy z tego wbudowanego systemu (ja też byłem jednym z nich). Kiedy dowiedziałem się o tej funkcji, byłem zaskoczony. Oszczędza to dużo czasu na zbudowaniu od podstaw systemu logowania i rejestracji.
W tym artykule przyjrzymy się systemowi rejestracji i logowania użytkowników w Laravel – wbudowanej funkcji dostarczanej przez sam Laravel.
Jak wszyscy wiemy proces logowania i rejestracji przebiega poniżej przepływu, który zwykle wymaga integracji.
- Użytkownik tworzy konto
- Link potwierdzający zostanie wysłany na adres e-mail użytkownika
- Gdy użytkownik kliknie link potwierdzający, zostanie aktywowany w twoim systemie.
- Użytkownik loguje się do Twojej witryny i może uzyskać dostęp do stron
Wszystkie powyższe kroki zostały omówione w Laravelu. Nie musisz pisać kodu, aby zbudować ten system tworzenia użytkowników.
To powiedziawszy, przyjrzyjmy się systemowi rejestracji i logowania użytkowników w Laravel
Pierwsze kroki
Aby rozpocząć, powinieneś być gotowy z projektem Laravel. Jeśli go nie masz, utwórz go, uruchamiając polecenie:
composer create-project --prefer-dist laravel/laravel laravel-dev
Tutaj ‘laravel-dev’ to nazwa projektu Laravel. Użytkownik może zmienić tę nazwę.
Następnie musisz zintegrować uwierzytelnianie Laravel. Udaj się do katalogu głównego projektu w terminalu i uruchom poniższe polecenia jeden po drugim:
composer require laravel/ui --dev
php artisan ui vue --auth
npm install && npm run dev
Polecenia te stworzy kontrolery uwierzytelniania, takich jak LoginController.php
, RegisterController.php
itp, które znajdą Państwo w app/Http/Controllers/Auth
katalogu. Tworzy również poglądy login.blade.php
, register.blade.php
zgodnie z resources/view/auth
katalogu.
Powyższe polecenia tworzą również app.blade.php
plik w resources/views/layouts
katalogu. Ten widok jest podstawowym układem aplikacji. Wykorzystuje framework Bootstrap CSS, ale użytkownik może go dostosować i zmienić projekt.
Uruchom polecenie migracji, które utworzy tabelę „users" w Twojej bazie danych.
php artisan migrate
Teraz, jeśli uruchomisz projekt Laravel w przeglądarce, zobaczysz linki do formularza logowania i rejestracji.
Na tym etapie użytkownicy mogą założyć swoje konto i zalogować się do serwisu. Ale jak wspomniałem powyżej, zanim użytkownik będzie mógł uzyskać dostęp do systemu, powinien potwierdzić swoje konto.
W kolejnym kroku zobaczymy, jak przeprowadzić proces weryfikacji adresu e-mail użytkownika.
Weryfikacja adresu e-mail
Budując system rejestracji, podczas rejestracji użytkownika wysyłasz użytkownikom link aktywacyjny. Ten link aktywacyjny będzie służył do weryfikacji konta użytkownika. Gdy użytkownik kliknie link aktywacyjny, aktywujemy go. Innymi słowy, po weryfikacji konta użytkownik może przeglądać strony Twojej aplikacji.
Laravel zapewnia wbudowany system procesu weryfikacji adresu e-mail dla nowo zarejestrowanego użytkownika. Za pomocą tego systemu zarejestrowany użytkownik otrzyma wiadomość e-mail z linkiem aktywacyjnym. Po aktywacji konta użytkownik będzie mógł uzyskać dostęp do systemu.
Otwórz AppUser.php
plik i upewnij się, że model „Użytkownik” realizuje IlluminateContractsAuthMustVerifyEmail
umowę.
<?php
namespace App;
use IlluminateContractsAuthMustVerifyEmail;
use IlluminateFoundationAuthUser as Authenticatable;
use IlluminateNotificationsNotifiable;
class User extends Authenticatable implements MustVerifyEmail
{
...
...
}
Jak to działa? Jeśli sprawdzisz plik migracji, tabela „użytkownicy” zawiera email_verified_at
kolumnę. Ta kolumna posłuży do sprawdzenia, czy użytkownik aktywował swoje konto, czy nie. Jeśli konto jest aktywowane, w tej kolumnie powinna znajdować się data i godzina aktywacji.
Po uruchomieniu polecenia uwierzytelniania tworzy AuthVerificationController
klasę, która ma napisaną logikę do wysyłania linków weryfikacyjnych i weryfikacji wiadomości e-mail. Deweloper może sprawdzić ten plik. Aby zarejestrować niezbędne trasy dla tego kontrolera, zapisz w routes/web.php
pliku poniższe trasy .
Auth::routes(['verify' => true]);
Użytkownik może chronić swoje trasy, które powinny znajdować się za logowaniem. Aby chronić trasy, musisz zastosować się middleware('verified')
do tych tras. Następnie te chronione trasy będą dostępne tylko dla zweryfikowanych kont.
Możesz napisać kod chroniący trasę w następujący sposób:
Route::get('profile', function() {
return '<h1>This is profile page</h1>';
})->middleware('verified');
Jeśli chcesz mieć kontrolę nad tym, gdzie przekierować użytkownika po weryfikacji, otwórz AuthVerificationController
plik. Plik posiada zmienną, $redirectTo
której użyje do przekierowania. Zmień tę trasę zgodnie z wymaganiami.
protected $redirectTo = '/home';
Logowanie i rejestracja użytkownika
Jesteś teraz gotowy do przetestowania systemu logowania i rejestracji użytkowników. Ponieważ mamy do czynienia z procesem rejestracji, Twój system powinien być w stanie wysłać wiadomość e-mail. Do wysyłania e-maili możesz używać serwera SMTP Gmaila. Aby uzyskać więcej informacji, przeczytaj nasz artykuł Wysyłanie wiadomości e-mail przez serwer SMTP Gmaila w Laravel.
Uruchom lokalny serwer programistyczny za pomocą polecenia:
php artisan serve
Utwórz konto użytkownika na stronie rejestracji tutaj – http://localhost:8000/register
Po przesłaniu formularza otrzymasz link weryfikacyjny na swój e-mail w następujący sposób:
Pamiętaj, że Laravel umożliwia zalogowanie się na Twoje konto, nawet jeśli jeszcze go nie zweryfikowałeś. Ale nie możesz uzyskać dostępu do chronionej trasy.
Dodałem oprogramowanie pośredniczące dla trasy profile
. Bez weryfikacji konta, jeśli spróbujesz odwiedzić stronę http://localhost:8000/profile, nastąpi przekierowanie do adresu URL http://localhost:8000/email/verify.
Śmiało i zweryfikuj swoje konto. Sprawdź tabelę „użytkownicy” w bazie danych, a zobaczysz email_verified_at
kolumnę wypełnioną datą i godziną aktywacji. Oznacza to, że pomyślnie zweryfikowałeś swoje konto. Teraz powinieneś mieć dostęp do chronionych tras.
Mam nadzieję, że rozumiesz, jak korzystać z systemu rejestracji i logowania użytkowników w Laravel. Podziel się swoimi przemyśleniami i sugestiami w poniższym komentarzu.
Powiązane artykuły
- Integracja bramki płatności Authorize.Net w Laravel
- Jak stworzyć bloga z Laravel
- Jak stworzyć Honeypota do walki ze spamem formularzy w Laravel?