Användarregistrering och inloggningssystem i Laravel
Laravel erbjuder inbyggt användarregistrerings- och inloggningssystem. De flesta utvecklare känner inte till det här inbyggda systemet (jag var också en av dem). När jag fick veta om den här funktionen blev jag förvånad. Det sparar mycket tid från att skapa ett inloggnings- och registreringssystem från grunden.
I den här artikeln studerar vi användarregistrerings- och inloggningssystemet i Laravel – den inbyggda funktionen som tillhandahålls av Laravel själv.
Som vi alla vet har inloggnings- och registreringsprocessen under flödet som vanligtvis behöver integreras.
- Användaren skapar ett konto
- Bekräftelselänken skickas på användarens e-postadress
- När användaren klickar på bekräftelselänken aktiveras de på ditt system.
- Användaren loggar in på din webbplats och kan komma åt sidorna
Alla ovanstående steg beskrivs i Laravel. Du behöver inte skriva en kod för att bygga detta användarskapande system.
Med detta sagt, låt oss ta en titt på användarregistrerings- och inloggningssystemet i Laravel
Komma igång
För att komma igång bör du vara redo med Laravel-projektet. Om du inte har det skapar du det genom att köra kommandot:
composer create-project --prefer-dist laravel/laravel laravel-dev
Här är ‘laravel-dev’ namnet på Laravel-projektet. Användaren kan ändra detta namn.
Därefter måste du integrera Laravel-autentisering. Gå över till projektets rotkatalog i terminalen och kör kommandona nedan en efter en:
composer require laravel/ui --dev
php artisan ui vue --auth
npm install && npm run dev
Dessa kommandon skapar autentiseringsstyrenheter som LoginController.php
, RegisterController.php
etc, som du hittar i app/Http/Controllers/Auth
katalogen. Det skapar också en utsikt login.blade.php
, register.blade.php
enligt resources/view/auth
katalogen.
Ovanstående kommandon skapar också en app.blade.php
fil under resources/views/layouts
katalogen. Denna vy är en baslayout för applikationen. Den använder Bootstrap CSS-ramverket men användaren kan anpassa den och ändra design.
Kör migreringskommandot som skapar en "användartabell" i din databas.
php artisan migrate
Nu om du kör Laravel-projektet i webbläsaren ser du länkarna för inloggnings- och registreringsformulär.
I detta skede kan användare skapa sitt konto och logga in på webbplatsen. Men som jag nämnde ovan, innan en användare kan komma åt systemet borde de ha bekräftat sitt konto.
I nästa steg kommer vi att se hur man utför e-postverifieringsprocessen för en användare.
mejl verifikation
När du skapar ett registreringssystem skickar du en användarlänk till användarna när du registrerar dig. Denna aktiveringslänk kommer att användas för att verifiera användarkontot. En gång klickar användaren på en aktiveringslänk så gör vi den användaren aktiv. Med andra ord, efter att kontot har verifierats kan användaren bläddra bland sidorna i din applikation.
Laravel tillhandahåller ett inbyggt system för e-postverifiering för en nyregistrerad användare. Med detta system får en registrerad användare ett e-postmeddelande med en aktiveringslänk. När du aktiverar kontot kan användaren komma åt systemet.
Öppna AppUser.php
filen och se till att användarmodellen implementerar IlluminateContractsAuthMustVerifyEmail
kontrakt.
<?php
namespace App;
use IlluminateContractsAuthMustVerifyEmail;
use IlluminateFoundationAuthUser as Authenticatable;
use IlluminateNotificationsNotifiable;
class User extends Authenticatable implements MustVerifyEmail
{
...
...
}
Hur fungerar det? Om du markerar migreringsfilen innehåller tabellen ‘användare’ en email_verified_at
kolumn. Den här kolumnen kommer att användas för att verifiera om användaren har aktiverat sitt konto eller inte. Om kontot är aktiverat bör den här kolumnen ha datum och tid för aktivering.
När du kör autentiseringskommandot skapar det en AuthVerificationController
klass som har logik skriven för att skicka verifieringslänkar och verifiera e-postmeddelanden. Utvecklaren kan kontrollera den här filen. För att registrera nödvändiga rutter för denna styrenhet, skriv nedanstående rutter i routes/web.php
filen.
Auth::routes(['verify' => true]);
Användaren kan skydda sina rutter som ska ligga bakom inloggningen. För att skydda rutterna måste du ansöka middleware('verified')
om dessa rutter. Efter detta kan dessa skyddade rutter endast nås via verifierade konton.
Du kan skriva koden för att skydda rutten enligt följande:
Route::get('profile', function() {
return '<h1>This is profile page</h1>';
})->middleware('verified');
Om du vill ha kontroll över var du ska omdirigera användaren efter verifiering öppnar du AuthVerificationController
filen. Filen har variabeln $redirectTo
som kommer att användas för omdirigering. Ändra denna rutt enligt dina krav.
protected $redirectTo = '/home';
Användarinloggning och registrering
Du är nu redo att testa användarinloggnings- och registreringssystemet. Eftersom vi har att göra med registreringsprocessen bör ditt system kunna skicka ett e-postmeddelande. Du kan använda Gmail SMTP-servern för att skicka e-post. För mer information, läs vår artikel Skicka e-post via Gmail SMTP-server i Laravel.
Starta den lokala utvecklingsservern med kommandot:
php artisan serve
Skapa ett användarkonto på registreringssidan här – http: // localhost: 8000 / register
När du skickar in ett formulär får du verifieringslänken på din e-postadress enligt följande:
Observera att Laravel låter dig logga in på ditt konto även om du inte har verifierat kontot ännu. Men du kan inte komma åt den skyddade rutten.
Jag har lagt till middleware för rutten profile
. Utan att verifiera kontot om du försöker besöka http: // localhost: 8000 / profilsidan kommer det att omdirigeras till http: // localhost: 8000 / email / verifiera URL.
Fortsätt och verifiera ditt konto. Kontrollera tabellen ‘användare’ i databasen så kommer du att se email_verified_at
kolumnen fylld på datum och tid för aktivering. Det betyder att du har verifierat ditt konto framgångsrikt. Nu ska du kunna komma åt skyddade rutter.
Jag hoppas att du förstår hur du använder användarregistrerings- och inloggningssystemet i Laravel. Dela dina tankar och förslag i kommentaren nedan.
relaterade artiklar
- Authorize.Net Payment Gateway Integration i Laravel
- Hur man skapar en blogg med Laravel
- Hur man skapar honungspott för att bekämpa skräppost i Laravel