Gebruikersauthenticatie instellen in Laravel met Confide

Gebruikersauthenticatie maakt deel uit van bijna elke webapplicatie. Hoewel het gebruikelijk is, laat een diepere blik zien dat het niet zo eenvoudig is als het lijkt. Vergeet niet dat validatie, wachtwoordherstel en e-mailbevestiging van vitaal belang zijn voor elk fatsoenlijk authenticatieformulier.

Confide is een authenticatieoplossing voor Laravel om het repetitieve werk met betrekking tot het beheer van gebruikers te verminderen. Het is een DROGE benadering van functies zoals het maken van een account, inloggen, uitloggen, bevestiging per e-mail, wachtwoordreset, enz.

Sinds de vroege versies had Confide altijd goede adoptie onder ontwikkelaars en een brede aanwezigheid in Laravel-projecten. Met een recente update is het pakket nu compatibel met Laravel 4.2, de laatste stabiele release van Laravel op het moment van schrijven.

Wat gaan we doen

In deze zelfstudie beginnen we vanaf het begin door onze Laravel-app te maken met Composer en vervolgens:

  • een aanmeldingsformulier maken met een volledige set validatieregels
  • een inlogformulier met een "mijn wachtwoord vergeten" optie die een link stuurt voor de gebruiker om zijn wachtwoord te herdefiniëren
  • gebruik Laravel-filters om alleen geregistreerde gebruikers toegang te geven tot een specifieke route.

De applicatie maken

Laten we eerst de toepassing maken met Composer.

$ composer create-project laravel / laravel myapp

Confide installeren

Bewerk nu met de binnenkant van de projectdirectory de vereisen sleutel van composer.json bestand en voeg vertrouwelijke invoer toe:

"require": "laravel / framework": "~ 4.2", "zizaco / confide": "~4.0@dev",

Voer dan de update van de componist uit over onze nieuwe afhankelijkheid:

$ composer update zizaco / confide

In config / app.php van ons project, toevoegen 'Zizaco \ Confide \ ServiceProvider' aan het einde van de array van providers:

... 'providers' => array ('Illuminate \ Foundation \ Providers \ ArtisanServiceProvider', 'Illuminate \ Auth \ AuthServiceProvider', ... 'Zizaco \ Confide \ ServiceProvider',), ... 

Voeg ook toe 'Confide' => 'Zizaco \ Confide \ Facade' naar de array aliassen in hetzelfde bestand:

... 'aliassen' => array ('App' => 'Illuminate \ Support \ Facades \ App', 'Artisan' => 'Illuminate \ Support \ Facades \ Artisan', ... 'Confide' => 'Zizaco \ Confide \ Facade ',),

Stel de adres en naam in config / mail.php. Deze configuratie zal worden gebruikt om e-mailbevestigingen voor de accountbevestiging en het wachtwoord te verzenden naar de gebruikers. Voor deze zelfstudie kunt u uw persoonlijke SMTP-server gebruiken om dingen te laten werken

Als u bijvoorbeeld Gmail gebruikt, kunt u het volgende doen:

'driver' => 'smtp', 'host' => 'smtp.gmail.com', // Voor testdoeleinden 'from' => array ('address' => '[email protected]', 'name' => 'MyApp'), ... 'gebruikersnaam' => '[email protected]', 'wachtwoord' => ',... 

Gebruikersmodel

Genereer de Confide-migraties nu door te lopen:

$ php artisan confide: migration $ php artisan migrate

Hiermee wordt een tabel met daarin ingesteld e-mail, wachtwoord, remember_token, bevestigingscode en bevestigd kolommen. Dit zijn de standaardvelden die nodig zijn voor Confide. Voel je vrij om later meer kolommen aan de tabel toe te voegen.

Vervang alle code in app / modellen / User.php naar:

 

Zizaco \ Confide \ ConfideUser eigenschap zal zorgen voor de meeste gedragingen van het gebruikersmodel.

GebruikersController en routes

Confide bevat een generator tool die een controller zal maken en de routes voor ons zal schrijven. Om de te maken UsersController en om de routes te registreren, laten we deze commando's uitvoeren:

$ php artisan confide: controller $ php artisan confide: routes

Aangezien er nieuwe klassen zijn gemaakt, moeten we de autoload-bestanden vernieuwen.

$ composer dump-autoload

Klaar voor gebruik

We zijn klaar! Onze applicatie heeft nu alle functies die Confide biedt. Voer de applicatieserver uit door te bellen php artisan serveren in de terminal.

Het volgende KRIJGEN routes zijn beschikbaar in onze applicatie:

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

Om toegang te krijgen tot de huidige gebruiker kunnen we bellen Vertrouw :: gebruiker (). Daarom moeten we de inhoud van. Vervangen door de naam van de huidige gebruiker app / views / hello.php met:

    Gebruikersauthentic met Confide   

Hallo Confide

Hoi

Ga je gang en toegang http: // localhost: 8000 / users / creëren om onze eerste gebruiker te maken. U ontvangt direct na het indienen van het formulier een bevestigingsmail (als u de config / mail.php met de juiste waarden). Log in en je ziet de gebruikersnaam op het scherm.

Visuals verbeteren

De standaardvormen van Confide zijn compatibel met Bootstrap. Laat je daarom niet intimideren door de "lelijkheid" van hen op een pagina zonder CSS. Bewerk de controller gegenereerd door Confide (UserController.php) en werk de aanmaakmethode bij naar:

 

Dus onze applicatie zal de weergave weergeven users.signup. Laten we deze weergave maken in app / views / gebruikers zoals signup.blade.php met de volgende inhoud:

    Gebruikersauthentic met Confide  Importeert twitter-bootstrap en stelt wat styling in      

Inschrijven

Geeft het aanmeldingsformulier van Confide Confide :: makeSignupForm () -> render ();

Hierna hebben we een veel eleganter resultaat in het formulier voor het maken van gebruikers http: // localhost: 8000 / user / creëren:

U hoeft de formulieren die door Confide zijn gegenereerd niet te gebruiken. U kunt uw eigen weergave maken die gegevens naar de verzendt POST routes.

Toegang beperken

Open app / routes.php en voeg de onderstaande code toe aan de onderkant van het bestand:

// Dashboard-route Route :: get ('gebruikerspaneel / dashboard', functie () return View :: make ('userpanel.dashboard');); // Past filter toe op de routes binnen admin / Route :: when ('userpanel / *', 'auth');

Maak het weergavebestand app / views / Userpanel / dashboard.blade.php:

    Gebruikersauthentic met Confide  Importeert twitter-bootstrap en stelt wat styling in      

Confide :: user () -> gebruikersnaam

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

Nu hebben we het filter op alle routes binnen toegepast Userpanel. We zullen een kleine aanpassing nodig hebben om ervoor te zorgen dat de auth filter stuurt de gebruiker door naar de juiste inlog-URL. Bewerk app / filters.php online 46 om te vervangen return Redirect :: guest ('login'); met:

... return Redirect :: guest ('users / login'); ... 

Dat gedaan, de Userpanel / dashboard pagina is alleen beschikbaar voor gebruikers die zijn aangemeld bij de app. Het filter leidt gastgebruikers om naar het aanmeldingsformulier en vervolgens terug naar het dashboard zodra ze zijn ingelogd.

Conclusie

Het is mogelijk om op te merken dat we snel gebruikersverificatie voor onze app konden instellen. Ook kunnen de gegenereerde controller, migratie en routes worden bewerkt om aan te passen hoe we elk detail zullen behandelen.

We hebben niet veel aandacht besteed aan de ConfideUser eigenschap, maar ik geloof dat het belangrijk is om dingen duidelijk te maken. Zodra uw model de ConfideUser eigenschap, u hoeft zich geen zorgen te maken over het implementeren van de basislogica. Tegelijkertijd kunt u de methoden nog steeds overschrijven en indien nodig aanpassen.

We kunnen zeggen dat Confide een DROGE benadering is van gebruikersauthenticatie. Het biedt het gemak van de functionaliteit out-of-the-box terwijl het nog steeds hoge maatwerk toestaat.

Bekijk Confide on GitHub. Als je een probleem had tijdens het volgen van deze tutorial, neem dan gerust contact met me op.