Einrichten der Benutzerauthentifizierung in Laravel mit Confide

Die Benutzerauthentifizierung ist in fast jeder Webanwendung enthalten. Obwohl es üblich ist, zeigt ein tieferer Blick, dass es nicht so einfach ist, wie es scheint. Denken Sie daran, dass Validierung, Passwortwiederherstellung und E-Mail-Bestätigung für ein anständiges Authentifizierungsformular unerlässlich sind.

Confide ist eine Authentifizierungslösung für Laravel, mit der sich die wiederkehrende Arbeit, die die Benutzerverwaltung erfordert, verringert wird. Es handelt sich um einen DRY-Ansatz für Funktionen wie Kontoerstellung, Anmelden, Abmelden, Bestätigung per E-Mail, Zurücksetzen des Kennworts usw..

Seit den ersten Versionen war Confide bei den Entwicklern gut angenommen und in Laravel-Projekten breit vertreten. Mit einem kürzlich erfolgten Update ist das Paket jetzt mit Laravel 4.2 kompatibel, der zur Zeit dieses Schreibens die aktuellste stabile Version von Laravel ist.

Was wir tun werden

In diesem Lernprogramm beginnen wir mit dem Erstellen unserer Laravel-App mit Composer.

  • Erstellen Sie ein Anmeldeformular mit allen Validierungsregeln
  • ein Anmeldeformular mit der Option "Passwort vergessen", über das der Benutzer einen Link zur Neudefinition seines Passworts erhält
  • Verwenden Sie Laravel-Filter, um zuzulassen, dass nur angemeldete Benutzer auf eine bestimmte Route zugreifen können.

Anwendung erstellen

Zunächst erstellen wir die Anwendung mit Composer.

$ composer create-project Laravel / Laravel Myapp

Confide installieren

Bearbeiten Sie nun innerhalb des Projektverzeichnisses die benötigen Schlüssel von composer.json Datei und Include Confide Eintrag:

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

Führen Sie dann das Composer-Update für unsere neue Abhängigkeit aus:

$ composer update zizaco / confide

Im config / app.php unseres Projekts hinzufügen "Zizaco \ Confide \ ServiceProvider" bis zum Ende des Provider-Arrays:

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

Auch hinzufügen 'Confide' => 'Zizaco \ Confide \ Facade' zu dem Alias-Array in derselben Datei:

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

Stellen Sie das ein Adresse und Name im config / mail.php. Diese Konfiguration wird verwendet, um E-Mails zur Kontobestätigung und zum Zurücksetzen des Kennworts an die Benutzer zu senden. In diesem Lernprogramm können Sie Ihren persönlichen SMTP-Server verwenden, um die Dinge zum Laufen zu bringen

Wenn Sie beispielsweise Google Mail verwenden, können Sie Folgendes tun:

'driver' => 'smtp', 'host' => 'smtp.gmail.com', // Zu Testzwecken 'von' => array ('address' => '[email protected]', 'name' => 'MyApp'),… 'Benutzername' => '[email protected]', 'Passwort' => ',… 

Benutzermodell

Generieren Sie nun die Confide-Migrationen, indem Sie Folgendes ausführen:

$ php Handwerker vertrauen: Migration $ php Handwerker migrieren

Dadurch wird eine Tabelle erstellt, die enthält Email, Passwort, remember_token, Bestätigungscode und Bestätigt Säulen. Dies sind die Standardfelder, die für Confide benötigt werden. Sie können der Tabelle später weitere Spalten hinzufügen.

Ersetzen Sie den gesamten Code in app / models / User.php zu:

 

Zizaco \ Confide \ ConfideUser trait kümmert sich um die meisten Verhaltensweisen des Benutzermodells.

UsersController und Routen

Confide enthält ein Generator-Tool, das einen Controller erstellt und die Routen für uns schreibt. So erstellen Sie die UsersController Um die Routen zu registrieren, führen wir folgende Befehle aus:

$ php Handwerker vertrauen: Controller $ php Handwerker vertrauen: Routen

Da neue Klassen erstellt wurden, müssen die Autoload-Dateien aktualisiert werden.

$ composer dump-autoload

Einsatzbereit

Wir sind fertig! Unsere Anwendung verfügt jetzt über alle Funktionen, die Confide bietet. Führen Sie den Anwendungsserver durch Aufrufen aus Php Handwerker dienen im Terminal.

Folgende ERHALTEN Routen sind in unserer Anwendung verfügbar:

http: // localhost: 8000 / users / create http: // localhost: 8000 / users / login http: // localhost: 8000 / users / Passwort vergessen

Um auf den aktuellen Benutzer zuzugreifen, können wir anrufen Confide :: user (). Um den Namen des aktuellen Benutzers anzuzeigen, müssen wir den Inhalt von ersetzen app / views / hello.php mit:

    Benutzerauthentifizierung mit Confide   

Hallo Vertraue

Hallo

Nun gehen Sie vor und greifen Sie zu http: // localhost: 8000 / users / create um unseren ersten Benutzer zu erstellen. Sie erhalten direkt nach dem Absenden des Formulars eine Bestätigungs-E-Mail (wenn Sie das gefüllt haben config / mail.php mit den richtigen Werten). Melden Sie sich an und Sie sehen den Benutzernamen auf dem Bildschirm.

Visuals verbessern

Die Standardformen von Confide sind mit Bootstrap kompatibel. Lassen Sie sich also nicht von der "Hässlichkeit" auf einer Seite ohne CSS einschüchtern. Bearbeiten Sie den von Confide generierten Controller (UserController.php) und aktualisieren Sie die Erstellungsmethode auf:

 

So wird unsere Anwendung die Ansicht darstellen Benutzer.signup. Lassen Sie uns diese Ansicht in erstellen App / Ansichten / Benutzer wie signup.blade.php mit folgendem Inhalt:

    Benutzerauthentifizierung mit Confide  Importiert Twitter-Bootstrap und setzt einiges Styling      

Anmelden

Rendert die Anmeldeform von Confide Confide :: makeSignupForm () -> render ();

Danach haben wir ein eleganteres Ergebnis in der Benutzererstellungsform http: // localhost: 8000 / user / create:

Sie müssen nicht die von Confide generierten Formulare verwenden. Sie können eine eigene Ansicht erstellen, die Daten an die sendet POST Routen.

Zugriff einschränken

Öffnen app / routes.php und fügen Sie den unten stehenden Code am Ende der Datei ein:

// Dashboard route Route :: get ('userpanel / dashboard', function () return View :: make ('userpanel.dashboard');); // wendet den Auth-Filter auf die Routen in admin / Route :: when an ('userpanel / *', 'auth');

Erstellen Sie die Ansichtsdatei app / views / userpanel / dashboard.blade.php:

    Benutzerauthentifizierung mit Confide  Importiert Twitter-Bootstrap und setzt einiges Styling      

Confide :: user () -> Benutzername

Email: Confide :: user () -> email

Nun haben wir den Filter auf alle Routen angewendet Benutzerbereich. Wir brauchen eine kleine Änderung, um sicherzustellen, dass die Auth Der Filter leitet den Benutzer zur richtigen Anmelde-URL um. Bearbeiten app / filters.php Online 46 um zu ersetzen return Umleitung :: guest ('login'); mit:

… Return Redirect :: guest ('Benutzer / Login');… 

Das getan, die Userpanel / Dashboard Diese Seite ist nur für Benutzer verfügbar, die bei der Anwendung angemeldet sind. Der Filter leitet Gastbenutzer zum Anmeldeformular und dann zurück zum Dashboard, sobald sie angemeldet sind.

Fazit

Es ist möglich festzustellen, dass wir die Benutzerauthentifizierung für unsere App schnell einrichten konnten. Außerdem können der generierte Controller, die Migration und die Routen bearbeitet werden, um den Umgang mit jedem Detail anzupassen.

Wir haben uns nicht sehr auf das konzentriert ConfideUser Merkmal, aber ich glaube, es ist wichtig, die Dinge zu klären. Sobald Ihr Modell die ConfideUser Eigenschaft, Sie müssen sich keine Gedanken über die Implementierung der Grundlogik machen. Gleichzeitig können Sie die Methoden trotzdem überschreiben und ggf. anpassen.

Wir können sagen, dass Confide ein DRY-Ansatz zur Benutzerauthentifizierung ist. Es bietet den Komfort, dass die Funktionalität sofort einsatzbereit ist und dennoch eine hohe Anpassungsfähigkeit ermöglicht.

Schauen Sie sich auf GitHub vertrauen. Wenn Sie während der Durchführung dieses Tutorials Probleme hatten, können Sie sich gerne an mich wenden.