Kasutajate registreerimine ja sisselogimissüsteem Laravelis
Laravel pakub sisseehitatud kasutajate registreerimis- ja sisselogimissüsteemi. Enamik arendajaid pole sellest sisseehitatud süsteemist teadlikud (ka mina olin üks neist). Kui sain sellest funktsioonist teada, olin üllatunud. See säästab palju aega sisselogimis- ja registreerimissüsteemi loomisest nullist.
Selles artiklis uurime kasutajate registreerimis- ja sisselogimissüsteemi Laravelis – sisseehitatud funktsiooni, mille pakub Laravel ise.
Nagu me kõik teame, on sisselogimis- ja registreerimisprotsess allpool voolu, mis tavaliselt tuleb integreerida.
- Kasutaja loob konto
- Kinnituslink saadetakse kasutaja e-posti aadressile
- Kui kasutaja on klõpsanud kinnituslingil, aktiveeritakse nad teie süsteemis.
- Kasutaja logib sisse oma veebisaidile ja pääseb lehtedele juurde
Kõiki ülaltoodud samme käsitleb Laravel. Selle kasutaja loomissüsteemi loomiseks ei pea te koodi kirjutama.
Seda öeldes vaatame kasutaja registreerimis- ja sisselogimissüsteemi In Laravel
Alustamine
Alustamiseks peaksite olema valmis Laraveli projektiga. Kui teil seda pole, looge see käsu käivitamisega:
composer create-project --prefer-dist laravel/laravel laravel-dev
Siin on ‘laravel-dev’ Laraveli projekti nimi. Kasutaja saab seda nime muuta.
Järgmisena peate integreerima Laraveli autentimise. Minge terminali projekti juurkataloogi ja käivitage ükshaaval järgmised käsud:
composer require laravel/ui --dev
php artisan ui vue --auth
npm install && npm run dev
Need käsud loob autentimise kontrollerid nagu LoginController.php
, RegisterController.php
jne, mis leiad on app/Http/Controllers/Auth
kataloog. See loob ka seisukohti login.blade.php
, register.blade.php
all resources/view/auth
kataloogis.
Ülaltoodud käsud loovad ka kataloogi app.blade.php
faili resources/views/layouts
. See vaade on rakenduse aluspaigutus. See kasutab Bootstrap CSS-i raamistikku, kuid kasutaja saab seda kohandada ja kujundust muuta.
Käivitage migreerimiskäsk, mis loob teie andmebaasi kasutajate tabeli.
php artisan migrate
Kui käivitate brauseris Laraveli projekti, näete sisselogimise ja registreerimisvormi linke.
Selles etapis saavad kasutajad luua oma konto ja veebisaidile sisse logida. Kuid nagu ma eespool mainisin, oleks kasutaja enne süsteemi pääsemist pidanud oma konto kinnitama.
Järgmises etapis näeme, kuidas teha kasutaja e-posti aadressi kinnitamise protsess.
E-posti aadressi kinnitamine
Registreerimissüsteemi ehitamise ajal saadate kasutajate registreerumisel kasutajatele aktiveerimislingi. Seda aktiveerimislingi kasutatakse kasutajakonto kinnitamiseks. Kui kasutaja klõpsab aktiveerimislingil, siis muudame selle kasutaja aktiivseks. Teisisõnu, pärast konto kinnitamist saab kasutaja sirvida teie rakenduse lehti.
Laravel pakub värskelt registreeritud kasutajale sisseehitatud e-posti aadressi kinnitamise süsteemi. Seda süsteemi kasutades saab registreeritud kasutaja meili aktiveerimislingiga. Konto aktiveerimisel pääseb kasutaja süsteemile juurde.
Avage AppUser.php
fail ja veenduge, et mudel "Kasutaja" täidab IlluminateContractsAuthMustVerifyEmail
lepingut.
<?php
namespace App;
use IlluminateContractsAuthMustVerifyEmail;
use IlluminateFoundationAuthUser as Authenticatable;
use IlluminateNotificationsNotifiable;
class User extends Authenticatable implements MustVerifyEmail
{
...
...
}
Kuidas see töötab? Kui kontrollite migreerimisfaili, sisaldab tabel „Kasutajad" email_verified_at
veergu. Seda veergu kasutatakse selleks, et kontrollida, kas kasutaja on oma konto aktiveerinud või mitte. Kui konto on aktiveeritud, peaks sellel veerul olema aktiveerimise kuupäev ja kellaaeg.
Kui käivitate autentimiskäsu, loob see AuthVerificationController
klassi, millele on kirjutatud loogika kinnituslinkide saatmiseks ja meilide kinnitamiseks. Arendaja saab seda faili kontrollida. Selle kontrolleri jaoks vajalike marsruutide registreerimiseks kirjutage routes/web.php
faili järgmised marsruudid .
Auth::routes(['verify' => true]);
Kasutaja saab kaitsta oma marsruute, mis peaksid olema sisselogimise taga. Marsruutide kaitsmiseks peate middleware('verified')
nendele marsruutidele kandideerima. Pärast seda pääsevad nendele kaitstud marsruutidele juurde ainult kinnitatud kontod.
Te saate marsruudi kaitsmiseks koodi kirjutada järgmiselt:
Route::get('profile', function() {
return '<h1>This is profile page</h1>';
})->middleware('verified');
Kui soovite kontrollida, kuhu kasutaja pärast kinnitamist suunata, avage AuthVerificationController
fail. Failil on muutuja, $redirectTo
mida kasutatakse ümbersuunamiseks. Muutke seda marsruuti vastavalt oma nõuetele.
protected $redirectTo = '/home';
Kasutaja sisselogimine ja registreerimine
Nüüd olete valmis kasutaja sisselogimis- ja registreerimissüsteemi testima. Kuna tegeleme registreerumisprotsessiga, peaks teie süsteem olema võimeline meili saatma. E-kirjade saatmiseks saate kasutada Gmaili SMTP-serverit. Lisateabe saamiseks lugege meie artiklit E-posti saatmine Gmaili SMTP-serveri kaudu Laravelis.
Käivitage kohalik arendusserver käsuga:
php artisan serve
Loo kasutaja konto siin registreerimislehel – http: // localhost: 8000 / register
Vormi esitamisel saate oma e-posti aadressile kinnituslingi järgmiselt:
Pange tähele, et Laravel võimaldab teil oma kontole sisse logida, isegi kui te pole veel kontot kinnitanud. Kuid te ei pääse kaitstud marsruudile juurde.
Olen marsruudi jaoks lisanud vahevara profile
. Konto kinnitamata, kui proovite külastada lehte http: // localhost: 8000 / profile, suunatakse see ümber aadressile http: // localhost: 8000 / email / verify URL.
Kinnitage oma konto. Kontrollige andmebaasi "kasutajate" tabelit ja näete, et email_verified_at
veerg täidab aktiveerimise kuupäeva ja kellaaja. See tähendab, et olete oma konto edukalt kinnitanud. Nüüd peaksite pääsema kaitstud marsruutidele.
Loodan, et saate aru, kuidas kasutada Laraveli kasutaja registreerimise ja sisselogimise süsteemi. Palun jagage oma mõtteid ja ettepanekuid allolevas kommentaaris.