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.
In diesem Lernprogramm beginnen wir mit dem Erstellen unserer Laravel-App mit Composer.
Zunächst erstellen wir die Anwendung mit Composer.
$ composer create-project Laravel / Laravel Myapp
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' => ',…
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: RoutenDa neue Klassen erstellt wurden, müssen die Autoload-Dateien aktualisiert werden.
$ composer dump-autoloadEinsatzbereit
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 vergessenUm auf den aktuellen Benutzer zuzugreifen, können wir anrufen
Confide :: user ()
. Um den Namen des aktuellen Benutzers anzuzeigen, müssen wir den Inhalt von ersetzenapp / 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 habenconfig / 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 erstellenApp / Ansichten / Benutzer
wiesignup.blade.php
mit folgendem Inhalt:Benutzerauthentifizierung mit Confide Importiert Twitter-Bootstrap und setzt einiges StylingAnmelden
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 StylingConfide :: user () -> Benutzername
Email: Confide :: user () -> emailNun haben wir den Filter auf alle Routen angewendet
Benutzerbereich
. Wir brauchen eine kleine Änderung, um sicherzustellen, dass dieAuth
Der Filter leitet den Benutzer zur richtigen Anmelde-URL um. Bearbeitenapp / filters.php
Online 46 um zu ersetzenreturn 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 dieConfideUser
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.