Utilizând fațada de autentificare Laravel 5

Autentificarea face parte din aproape toate aplicațiile web cu care lucrați. Este foarte plictisitor să continuați să repetați tot codul de boilerplate în fiecare proiect. Ei bine, vestea bună este că Laravel 5 îți revine la această plictiseală oferind o fațadă de autentificare gata de utilizat. 

Tot ce trebuie să faceți este să configurați și să personalizați furnizorul de servicii de autentificare în funcție de necesitățile proiectului. În acest sfat rapid, vă voi arăta exact cum să faceți asta.

Căutați o comandă rapidă?

Dacă doriți o soluție gata, încercată și testată, încercați Vanguard - Advanced PHP Login and User Management pe Envato Market. Este o aplicație PHP, scrisă în Laravel 5.2, care permite proprietarilor de site-uri să adauge rapid și să permită autentificarea, autorizarea și gestionarea utilizatorilor pe site-ul lor. 

Vanguard - Avansat PHP de conectare și de gestionare a utilizatorilor pe Envato Market

Configurarea mediului

Voi presupune că începeți cu o instalație nouă Laravel 5, dar puteți trece peste oricare dintre acești pași, dacă le-ați făcut deja. În primul rând, veți stabili unele variabile de mediu în .env fișier la baza proiectului dvs. Practic, acestea au legătură cu configurarea bazei de date.

APP_ENV = APP_DEBUG locală = true APP_KEY = 8wfDvMTvfXWHuYE483uXF11fvX8Qi8gC db_host = localhost DB_DATABASE = laravel_5_authentication DB_USERNAME = rădăcină PAROLĂ_BD = CACHE_DRIVER root = fișier SESSION_DRIVER = fișier

Observați APP_ENV,  db_host,  DB_DATABASE,  DB_USERNAME, și  PAROLĂ_BD variabile. APP_ENV variabilă spune Laravel care mediu dorim să rulați aplicația noastră web. Restul de nume de variabile de bază de date sunt destul de evidente. 

Acesta este tot ce trebuie să faceți pentru a configura conexiunea bazei de date. Dar cum folosește Laravel aceste variabile? Să examinăm config / database.php fişier. Veți observa utilizarea env () funcţie. De exemplu, env ("DB_HOST", "localhost"). Laravel 5 folosește această funcție pentru a capta variabile din $ _ENV și $ _SERVER tablouri globale, care sunt populate automat cu variabilele pe care le definiți în .env fişier.

Configurarea migrărilor

A executa php artisan migrează: instalați --env = local în terminalul dvs. la baza proiectului dvs. pentru a instala migrațiile la nivel local. De asemenea, observați că există două migrații deja definite în Baza de date / migrări pliant. Folosind aceste migrații, Laravel 5 creează o utilizatori și a password_resets tabel, permițând funcționarea plăcii de autentificare standard. Voi crea oa treia migrare pentru a modifica utilizatori pentru a vă arăta cum să personalizați configurarea implicită de autentificare.

A executa php artisan face: migrare alter_users_table_remove_name_add_first_name_last_name în terminal pentru a crea oa treia migrare.

dropColumn ( 'name'); $ table-> string ('first_name', 50) -> după ('id'); $ table-> șir ('last_name', 50) -> după ('first_name'); );  / ** * Reveniți la migrații. * * @Return void * funcția / publică în jos () :: Schema de masă (, funcția ($ tabel 'utilizatori') $ table-> dropColumn ( 'last_name'); $ table-> dropColumn ( 'first_name'); $ table-> șir ('nume') -> după ('id');); 

După cum puteți vedea, ați eliminat câmpul de nume și ați adăugat încă două câmpuri Nume și numele de familie cu o lungime maximă de 50 de caractere. Ați adăugat, de asemenea, codul care reia aceste modificări în baza de date.

A executa php artizan migrează în terminal. Dacă migrațiile au avut succes, ar trebui să puteți vedea atât tabelele din baza de date cu câmpurile pe care le-ați definit.

Configurarea serviciului de înregistrare

Veți configura serviciul Registrar pentru a adăuga noul dvs. definit utilizatori tabele de câmp. 

Editați fișierul app / Servicii / Registrar.php.

 'obligat' | min: 3 | max: 50 ',' last_name '=>' obligatoriu 'min: 3 | max: 50', 'email' => '=>' cerut | confirmat | min: 6 ',]);  / ** * Creați o nouă instanță de utilizator după o înregistrare validă. * * @param matrice $ date * @return User * / public function create (array $ data) retur user :: create (['first_name' => $ data ['first_name'], 'last_name' 'last_name'], 'email' => $ data ['email'], 'parola' => bcrypt ($ data ['parola']),]); 

validator funcția validează datele transmise din formularul de înregistrare al utilizatorului. Ați eliminat setarea implicită Nume câmp și a adăugat Nume și numele de familie câmpuri cu o lungime minimă de trei caractere și o lungime maximă de 50 de caractere pentru ambele. crea funcția adaugă utilizatorul înregistrat la utilizatori tabel în baza de date, deci trebuie doar să includeți Nume și numele de familie câmpuri.

Actualizarea modelului de utilizator

De asemenea, va trebui să actualizați modelul de utilizator pentru a include Nume și numele de familie câmpuri. 

Editați fișierul app / User.php.

$ se poate umple matrice specifică domeniile care sunt deschise la modificare. În general, nu ați include câmpuri care sunt generate automat în acest câmp sau câmpuri care nu necesită o intrare a utilizatorului ca hașul pentru un jeton de memorie. Tot ce ați făcut este actualizarea $ se poate umple pentru a permite Nume și numele de familie să fie atribuite în masă.

Actualizarea Vizualizării

În cele din urmă, trebuie doar să actualizați vizualizările front-end pentru a include Nume și numele de familie câmpuri. În primul rând, veți actualiza formularul de înregistrare. 

Editați fișierul Resurse / opinii / autorizare / register.blade.php.

@extends ('app') @section ('conținut') 
Inregistreaza-te
@if (numără ($ erori)> 0)
Hopa! Au existat unele probleme cu ajutorul dvs..

    @foreach ($ errors-> all () ca eroare $)
  • $ error
  • @endforeach
@endif
@endsection

Ați adăugat Nume și numele de familie câmpuri la formularul de înregistrare. De asemenea, trebuie să modificați aspectul implicit al aplicației la Resurse / opinii / app.blade.php pentru a afișa numele utilizatorului înregistrat în meniul de navigare.

      Laravel 5: Folosind fațada de autentificare            
@yield ( 'conținut')

Asigurarea căilor dvs.

Pentru a vă asigura că rutele și pentru a le permite utilizatorilor conectați să le poată accesa, trebuie să folosiți mediul de administrare auth care este furnizat de Laravel. Mijloacele de middleware auth pot fi găsite la app \ Http \ Middleware \ Authenticate.php

Iată câteva exemple de utilizare a acesteia pentru a vă proteja rutele.

// închiderea rutei Route :: get ('', [' middleware '=>' auth ', funcția () // dacă utilizatorul nu este autentificat // el va fi redirecționat către pagina de autentificare // și acest cod nu va fi executat]); // actiune controler Route :: get ('',' middleware '=>' auth ',' utilizează '=>'@„]); // într-o clasă de controler YourController extinde Controller funcția publică __construct () $ this-> middleware ('„); $ This-> middleware (“', [' numai '=> ['„]]); $ This-> middleware (“', [' cu excepția '=> ['„]]); 

Modificarea rutelor de autentificare implicite

Puteți executa php artisan route: list în terminal pentru a verifica rutele implicite pe care le utilizează fațada de autentificare. Puteți accesa aceste rute pentru a vă testa codul de autentificare. Iată câteva exemple de moduri de modificare a acestor rute.

Editați fișierul app / HTTP / routes.php.

// Exemplu 1 // adresa URL de conectare http://www.example.com/account/login // url de logout http://www.example.com/account/logout // adresa URL de înregistrare http: //www.example. com / cont / registru Route :: controlere (['account' => 'Auth \ AuthController', 'password' => 'Auth \ PasswordController',]); // Exemplu 2 // adresa URL de conectare http://www.example.com/login // url de logout http://www.example.com/logout // url de înregistrare http://www.example.com/register Route :: controllere ([ "=> 'Auth \ AuthController', 'parola' => 'Auth \ PasswordController',]); // Exemplul 3 // redefiniți toate căile de rută :: obține ( 'exemplu / registru',„Auth \ AuthController @ getRegister '); Calea :: post (' exemplu / registru“, 'Auth \ AuthController @ postRegister'); Calea :: get ( 'exemplu / autentificare', 'Auth \ AuthController @ getLogin'); Route :: post ( 'exemplu / autentificare', 'Auth \ AuthController @ postLogin'); Calea :: get ( 'exemplu / logout', 'Auth \ AuthController @ getLogout'); Calea :: get ( 'exemplu / e-mail', „Auth \ PasswordController @ getEmail '); Route :: post (' exemplu / e-mail“, 'Auth \ PasswordController @ postEmail'); Route :: get ( 'exemplu / reset / cod', 'Auth \ PasswordController @ getReset') ; Traseu :: post ('exemplu / reset', 'Auth \ PasswordController @ postReset');

De asemenea, nu uitați să apelați URI dinamic în vizualizările și șabloanele de e-mail utilizând ajutorul de la Laravel. Puteți vedea cum să faceți acest lucru în depozitul GitHub al acestui sfat rapid.

Gândurile finale

Caracteristica de resetare a parolei trimite linkul pentru resetarea parolei la e-mail-ul utilizatorului, deci asigurați-vă că aveți configurația de e-mail stabilită în proiectul dvs. Laravel. Șablonul de vizualizare pentru e-mailul pentru resetarea parolei se află la Resurse / opinii / e-mailuri / password.blade.php. De asemenea, puteți configura câteva alte opțiuni de bază în config / auth.php fişier.

Sper că ați găsit acest sfat rapid ușor de urmărit. Până la următoarea mea piesă Tuts +, codificare fericită!

Apropo, dacă aveți nevoie de ajutor suplimentar pentru remedierea erorilor sau pentru personalizarea la care nu vă simțiți confortabil, contactați unul dintre furnizorii de servicii PHP din Envato Studio. Acestea vă pot ajuta cu o gamă largă de probleme rapid și fiabil, astfel încât, cu o mică investiție de bani, puteți să vă salvați o mulțime de timp!

Furnizori de servicii PHP pe Envato Studio
Cod