Configurarea autentificării utilizatorilor în Laravel Utilizând confidența

Autentificarea utilizatorilor face parte din aproape fiecare aplicație web. Deși este obișnuit, o privire mai profundă arată că nu este așa de simplu cum pare. Amintiți-vă că validarea, recuperarea parolei și confirmarea prin e-mail sunt vitale pentru orice formă autentică de autentificare.

Confide este o soluție de autentificare pentru Laravel făcută pentru a reduce munca repetitivă care implică gestionarea utilizatorilor. Este o abordare DRY pentru funcții precum crearea contului, autentificarea, logoutul, confirmarea prin e-mail, resetarea parolei etc..

De la versiunile anterioare, Confide a avut întotdeauna o bună adopție în rândul dezvoltatorilor și o largă prezență în proiectele Laravel. Cu o actualizare recentă, pachetul este acum compatibil cu Laravel 4.2, care este cea mai recentă versiune stabilă a lui Laravel în momentul acestei scrieri.

Ce vom face

În acest tutorial, vom începe de la început prin crearea aplicației Laravel folosind Compozitor și apoi:

  • creați un formular de înscriere cu un set complet de reguli de validare
  • un formular de autentificare cu opțiunea "ați uitat parola", care va trimite un link pentru ca utilizatorul să-și redefinească parola
  • utilizați filtrele Laravel pentru a permite numai utilizatorilor înregistrați să acceseze un anumit traseu.

Crearea aplicației

Mai întâi de toate, hai să creăm aplicația utilizând Composer.

$ compozitor crea-proiect laravel / laravel myapp

Instalarea confidenței

Acum, în interiorul directorului de proiect, editați necesita cheie de composer.json fișier și includ încredere de intrare:

"necesită": "laravel / framework": "~ 4.2", "zizaco / confide": "~ 4.0.0dev",

Apoi rulați actualizarea compozitorului pe noua noastră dependență:

$ compozitor update zizaco / confide

În config / app.php a proiectului nostru, adaugă 'Zizaco \ Încredeți \ ServiceProvider' până la sfârșitul seriei de furnizori:

... "furnizori" => array ("Iluminate \ Fundația \ Furnizori \ ArtisanServiceProvider", "Iluminate \ Auth \ AuthServiceProvider", ... "Zizaco \ Confide \ ServiceProvider" 

Adăugați, de asemenea 'Confide' => 'Zizaco \ Confide \ Facade' la matricea de pseudonime din același fișier:

... 'aliases' => array ('App' => 'Iluminate \ Support \ Facades \ App', 'Artisan' => 'Zizaco \ Confide \ ",),

Seteaza adresa și Nume în config / mail.php. Această configurație va fi utilizată pentru a trimite utilizatorilor mesaje de confirmare a contului și de resetare a parolei. Pentru acest tutorial, aveți posibilitatea să utilizați serverul personal SMTP pentru a face lucrurile să funcționeze

De exemplu, dacă utilizați Gmail, puteți face următoarele:

'driver' => 'smtp', 'host' => 'smtp.gmail.com', // pentru scopuri de testare 'din' => => 'MyApp'), ... 'username' => '[email protected]', 'parola' => ',... 

Modelul utilizatorului

Acum, generați migrarea Configure prin difuzarea:

$ php artizan confide: emigrare $ php artizan migrează

Aceasta va configura un tabel care conține e-mail, parola, remember_token, Codul de confirmare și confirmat coloane. Acestea sunt câmpurile implicite necesare pentru Confide. Simțiți-vă liber să adăugați mai multe coloane la masă mai târziu.

Înlocuiți tot codul în app / modele / User.php la:

 

Zizaco \ Încredeți \ ConfideUser trăsătura va avea grijă de cele mai multe comportamente ale modelului de utilizator.

UtilizatoriController și Rute

Confide conține un instrument generator care va crea un controler și va scrie rutele pentru noi. Pentru a crea UsersController și să înregistreze rutele pentru a rula aceste comenzi:

$ php artizan confide: controler $ php artizan confide: rute

Deoarece au fost create noi clase, va trebui să actualizăm fișierele autoload.

$ compunere dump-autoload

Gata de folosire

Am terminat! Aplicația noastră are acum toate caracteristicile oferite de Confide. Rulați serverul de aplicații sunând php artisan servi în terminal.

Următoarele OBȚINE rutele sunt disponibile în aplicația noastră:

http: // localhost: 8000 / users / create http: // localhost: 8000 / utilizatori / login http: // localhost: 8000 / users / forgot_password

Pentru a accesa utilizatorul curent, putem apela Încrede :: utilizator (). Prin urmare, pentru a afișa numele utilizatorului curent trebuie să înlocuiți conținutul app / views / hello.php cu:

    Auth utilizator cu Confide   

Salut Confide

Bună

Acum mergeți mai departe și accesați-vă http: // localhost: 8000 / utilizatori / creați pentru a crea primul utilizator. Veți primi un e-mail de confirmare imediat după trimiterea formularului (dacă ați completat config / mail.php cu valorile corecte). Conectați-vă și veți vedea numele de utilizator pe ecran.

Îmbunătățirea vizuale

Formele implicite de Confide sunt compatibile cu Bootstrap. Deci, nu fi intimidat de "urâțenia" lor pe o pagină fără CSS. Editați controlerul generat de Confide (UserController.php) și actualizați metoda de creare a:

 

Astfel, aplicația noastră va face vizualizarea users.signup. Să creați această vizualizare în app / views / utilizatori la fel de signup.blade.php cu următorul conținut:

    Auth utilizator cu Confide  Importează bootstrap-ul de tip twitter și stabilește un anumit stil      

Inscrie-te

Îmbunătățește formularul de înscriere Confide Confide :: makeSignupForm () -> render ();

După aceasta, vom avea un rezultat mult mai elegant în formularul de creare a utilizatorului http: // localhost: 8000 / utilizator / crea:

Nu trebuie să utilizați formularele generate de Confide. Puteți crea o vizualizare proprie care trimite date către POST rute.

Restricționarea accesului

Deschis app / routes.php și adăugați codul de mai jos în partea de jos a fișierului:

// Traseul tabloului de bord Route :: get ('userpanel / dashboard', function () return View :: make ('userpanel.dashboard');); // Aplică filtrul auth pe rutele din admin / Route :: when ('userpanel / *', 'auth');

Creați fișierul de vizualizare app / views / userpanel / dashboard.blade.php:

    Auth utilizator cu Confide  Importează bootstrap-ul de tip twitter și stabilește un anumit stil      

Confide :: user () -> nume utilizator

e-mail: Confide :: utilizator () -> email

Acum că am aplicat filtrul pe toate căile din interiorul acestuia userpanel. Vom avea nevoie de un mic truc pentru a ne asigura că AUTH filtrul va redirecționa utilizatorul la adresa URL corectă de conectare. Editați | × app / filters.php pe net 46 pentru a le înlocui returnează Redirect :: guest ('login'); cu:

... întoarcere Redirect :: oaspete ("utilizatori / login"); ... 

Asta a făcut, userpanel / tablou de bord pagina va fi disponibilă numai pentru utilizatorii conectați la aplicație. Filtrul va redirecționa utilizatorii oaspeți la formularul de conectare și apoi va reveni la tabloul de bord odată ce sunt conectați.

Concluzie

Este posibil să rețineți că am reușit să configuram rapid autentificarea utilizatorului pentru aplicația noastră. De asemenea, controlerul generat, migrarea și rutele pot fi editate pentru a personaliza modul în care vom gestiona fiecare detaliu.

Nu ne-am concentrat prea mult pe ConfideUser dar cred că este important să clarificăm lucrurile. Odată ce modelul dvs. utilizează ConfideUser trait, nu trebuie să vă faceți griji cu privire la implementarea logicii de bază. În același timp, puteți încă să suprascrieți metodele și să le personalizați, dacă este necesar.

Putem spune că Confide este o abordare DRY pentru autentificarea utilizatorilor. Acesta oferă confortul de a avea funcționalitate în afara casetei, în timp ce încă permite personalizarea înaltă.

Verificați Confirmați pe GitHub. Dacă ați avut o problemă în timp ce urmați acest tutorial, nu ezitați să mă contactați.

Cod