Käyttäjärekisteröinti- ja kirjautumisjärjestelmä Laravelissa
Laravel tarjoaa sisäänrakennetun käyttäjän rekisteröinti- ja kirjautumisjärjestelmän. Suurin osa kehittäjistä ei ole tietoinen tästä sisäänrakennetusta järjestelmästä (olin myös yksi heistä). Kun sain tietää tästä ominaisuudesta, olin yllättynyt. Se säästää paljon aikaa kirjautumis- ja rekisteröintijärjestelmän rakentamisesta tyhjästä.
Tässä artikkelissa tutkitaan käyttäjien rekisteröinti- ja kirjautumisjärjestelmää Laravelissa – Laravelin itse tarjoama sisäänrakennettu ominaisuus.
Kuten me kaikki tiedämme, sisäänkirjautumis- ja rekisteröintiprosessin virta on alle, mikä yleensä on integroitava.
- Käyttäjä luo tilin
- Vahvistuslinkki lähetetään käyttäjän sähköpostiosoitteeseen
- Kun käyttäjä napsauttaa vahvistuslinkkiä, hän aktivoituu järjestelmässäsi.
- Käyttäjä kirjautuu verkkosivustollesi ja pääsee sivuille
Kaikki yllä olevat vaiheet käsitellään Laravelissa. Sinun ei tarvitse kirjoittaa koodia tämän käyttäjän luomisjärjestelmän rakentamiseksi.
Tämän sanottuaan katsotaanpa käyttäjien rekisteröinti- ja kirjautumisjärjestelmää Laravelissa
Päästä alkuun
Aloittamiseksi sinun on oltava valmis Laravel-projektiin. Jos sinulla ei ole sitä, luo se suorittamalla komento:
composer create-project --prefer-dist laravel/laravel laravel-dev
Tässä ‘laravel-dev’ on Laravel-projektin nimi. Käyttäjä voi muuttaa tätä nimeä.
Seuraavaksi sinun on integroitava Laravel-todennus. Siirry päätelaitteen projektin juurihakemistoon ja suorita seuraavat komennot yksi kerrallaan:
composer require laravel/ui --dev
php artisan ui vue --auth
npm install && npm run dev
Nämä komennot luovat autentikointi ohjaimia kuten LoginController.php
, RegisterController.php
jne josta löydät että app/Http/Controllers/Auth
hakemistoon. Se luo myös näkymiä login.blade.php
, register.blade.php
alle resources/view/auth
hakemistoon.
Yllä olevat komennot myös luovat app.blade.php
tiedoston resources/views/layouts
hakemistoon. Tämä näkymä on sovelluksen perusta. Se käyttää Bootstrap CSS -kehystä, mutta käyttäjä voi muokata sitä ja muuttaa suunnittelua.
Suorita siirtokomento, joka luo tietokantaan ” käyttäjätaulukon ”.
php artisan migrate
Nyt jos suoritat Laravel-projektin selaimella, näet kirjautumis- ja rekisteröintilomakkeen linkit.
Tässä vaiheessa käyttäjät voivat luoda tilinsä ja kirjautua sisään verkkosivustolle. Mutta kuten edellä mainitsin, ennen kuin käyttäjä voi käyttää järjestelmää, hänen olisi pitänyt vahvistaa tilinsä.
Seuraavassa vaiheessa näemme, kuinka käyttäjän sähköpostivahvistus suoritetaan.
sähköpostivarmistus
Rekisteröintijärjestelmää rakennettaessa lähetät käyttäjille aktivointilinkin rekisteröinnin yhteydessä. Tätä aktivointilinkkiä käytetään käyttäjätilin vahvistamiseen. Kun käyttäjä napsauttaa aktivointilinkkiä, teemme kyseisen käyttäjän aktiiviseksi. Toisin sanoen tarkistettuaan tilin käyttäjä voi selata sovelluksesi sivuja.
Laravel tarjoaa sisäänrakennetun järjestelmän sähköpostivahvistusprosessista vasta rekisteröidylle käyttäjälle. Rekisteröitynyt käyttäjä saa tätä järjestelmää käyttämällä sähköpostin, jossa on aktivointilinkki. Kun tili on aktivoitu, käyttäjä voi käyttää järjestelmää.
Avaa AppUser.php
tiedosto ja varmista, että Käyttäjä-malli toteuttaa IlluminateContractsAuthMustVerifyEmail
sopimuksen.
<?php
namespace App;
use IlluminateContractsAuthMustVerifyEmail;
use IlluminateFoundationAuthUser as Authenticatable;
use IlluminateNotificationsNotifiable;
class User extends Authenticatable implements MustVerifyEmail
{
...
...
}
Kuinka se toimii? Jos tarkistat siirtotiedoston, käyttäjien taulukossa on email_verified_at
sarake. Tätä saraketta käytetään tarkistamaan, onko käyttäjä aktivoinut tilinsä. Jos tili on aktivoitu, tässä sarakkeessa tulisi olla aktivointipäivä ja -aika.
Kun suoritat todennuskomennon, se luo AuthVerificationController
luokan, johon on kirjoitettu logiikka lähettämään vahvistuslinkkejä ja vahvistamaan sähköposteja. Kehittäjä voi tarkistaa tämän tiedoston. Rekisteröi tarvittavat reitit tälle ohjaimelle kirjoittamalla alla olevat reitit routes/web.php
tiedostoon.
Auth::routes(['verify' => true]);
Käyttäjä voi suojata reittejä, joiden tulisi olla kirjautumisen takana. Reittien suojaamiseksi sinun on haettava middleware('verified')
kyseisiä reittejä. Tämän jälkeen näihin suojattuihin reitteihin pääsee vain vahvistetuilla tileillä.
Voit kirjoittaa koodin reitin suojaamiseksi seuraavasti:
Route::get('profile', function() {
return '<h1>This is profile page</h1>';
})->middleware('verified');
Jos haluat hallita käyttäjän uudelleenohjausta vahvistuksen jälkeen, avaa AuthVerificationController
tiedosto. Tiedostossa on muuttuja, $redirectTo
jota käytetään uudelleenohjaukseen. Muuta tätä reittiä vaatimuksesi mukaan.
protected $redirectTo = '/home';
Käyttäjien sisäänkirjautuminen ja rekisteröinti
Olet nyt valmis testaamaan käyttäjän kirjautumis- ja rekisteröintijärjestelmää. Koska käsittelemme kirjautumisprosessia, järjestelmän pitäisi pystyä lähettämään sähköpostia. Voit käyttää Gmailin SMTP-palvelinta sähköpostiviestien lähettämiseen. Lisätietoja on artikkelissamme Sähköpostin lähettäminen Gmail SMTP -palvelimen kautta Laravelissa.
Käynnistä paikallinen kehityspalvelin komennolla:
php artisan serve
Luo käyttäjän tili rekisteröintisivulla täältä – http: // localhost: 8000 / register
Kun lähetät lomakkeen, saat vahvistuslinkin sähköpostiisi seuraavasti:
Huomaa, että Laravel antaa sinun kirjautua tilillesi, vaikka et ole vielä vahvistanut tiliä. Mutta et pääse suojatulle reitille.
Olen lisännyt reitille väliohjelman profile
. Vahvistamatta tiliä yrität käydä http: // localhost: 8000 / profile -sivulla, se ohjaa osoitteeseen http: // localhost: 8000 / email / verif URL.
Vahvista tilisi. Tarkista tietokannan käyttäjien taulukko ja näet email_verified_at
sarakkeen täyttävän aktivointipäivän ja -ajan. Se tarkoittaa, että olet vahvistanut tilisi onnistuneesti. Nyt sinun on voitava käyttää suojattuja reittejä.
Toivon, että ymmärrät kuinka rekisteröidä ja kirjaudu sisään Laravelissa. Ole hyvä ja jaa ajatuksiasi ja ehdotuksiasi alla olevassa kommentissa.