Verwenden der Authentifizierungsfassade von Laravel 5

Die Authentifizierung ist in fast allen Webanwendungen enthalten, mit denen Sie arbeiten. Es ist wirklich langweilig, den gesamten Boilerplate-Code in jedem Projekt zu wiederholen. Nun, die gute Nachricht: Laravel 5 befreit Sie von dieser Langeweile, indem Sie eine fertige Authentifizierungsfassade bereitstellen. 

Alles, was Sie tun müssen, ist, den Authentifizierungsdiensteanbieter an die Anforderungen Ihres Projekts anzupassen und anzupassen. In diesem kurzen Tipp zeige ich Ihnen genau, wie das geht.

Suche nach einer Verknüpfung?

Wenn Sie eine vorgefertigte, bewährte Lösung wünschen, versuchen Sie es mit Vanguard - Advanced PHP Login und User Management auf Envato Market. Es ist eine in Laravel 5.2 geschriebene PHP-Anwendung, mit der Websitebesitzer schnell Authentifizierung, Autorisierung und Benutzerverwaltung auf ihrer Website hinzufügen und aktivieren können. 

Vanguard - Erweitertes PHP-Login und Benutzermanagement auf dem Envato-Markt

Umgebung einrichten

Ich gehe davon aus, dass Sie mit einer neuen Laravel 5-Installation beginnen, aber Sie können alle diese Schritte überspringen, wenn Sie sie bereits ausgeführt haben. Zunächst einmal werden Sie einige Umgebungsvariablen in festlegen .env Datei im Stammverzeichnis Ihres Projekts. Diese haben im Wesentlichen mit der Datenbankkonfiguration zu tun.

APP_ENV = local APP_DEBUG = true APP_KEY = 8wfDvMTvfXWHuYE483uXF11fvX8Qi8gC DB_HOST = localhost DB_DATABASE = laravel_5_authentication DB_USERNAME = Root

Beachten Sie die APP_ENV,  DB_HOST,  DB_DATABASE,  DB_USERNAME, und  DB_PASSWORD Variablen. Das APP_ENV Variable teilt Laravel mit, in welcher Umgebung wir unsere Webanwendung ausführen möchten. Der Rest der Datenbankvariablennamen ist ziemlich offensichtlich. 

Dies ist alles, was Sie zum Konfigurieren der Datenbankverbindung tun müssen. Aber wie nutzt Laravel diese Variablen? Untersuchen wir das config / database.php Datei. Sie werden feststellen, dass die Verwendung von env () Funktion. Zum Beispiel, env ('DB_HOST', 'localhost'). Laravel 5 verwendet diese Funktion zum Erfassen von Variablen aus $ _ENV und $ _SERVER globale Arrays, die automatisch mit den von Ihnen definierten Variablen gefüllt werden .env Datei.

Einrichten der Migrationen

Ausführen PHP Handwerker migrieren: install --env = local in Ihrem Terminal im Stammverzeichnis Ihres Projekts, um die Migrationen lokal zu installieren. Beachten Sie auch, dass im Migrationsprogramm bereits zwei Migrationen definiert sind Datenbank / Migrationen Mappe. Mit diesen Migrationen erstellt Laravel 5 eine Benutzer und ein password_resets Tabelle, damit die Standard-Authentifizierungs-Boilerplate funktioniert. Ich werde eine dritte Migration erstellen, um die Benutzer Diese Tabelle zeigt Ihnen, wie Sie das Standard-Authentifizierungs-Setup anpassen.

Ausführen PHP Handwerker machen: Migration alter_users_table_remove_name_add_first_name_last_name im Terminal, um eine dritte Migration zu erstellen.

dropColumn ('name'); $ table-> string ('first_name', 50) -> after ('id'); $ table-> string ('last_name', 50) -> after ('first_name'); );  / ** * Kehren Sie die Migrationen um. * * @return void * / public function down () Schema :: table ('Benutzer', Funktion ($ table) $ table-> dropColumn ('last_name'); $ table-> dropColumn ('first_name'); $ table-> string ('name') -> after ('id');); 

Wie Sie sehen, haben Sie das Namensfeld entfernt und zwei weitere Felder für hinzugefügt Vorname und Nachname mit einer maximalen Länge von 50 Zeichen. Sie haben auch den Code hinzugefügt, der diese Änderungen in der Datenbank zurücksetzt.

Ausführen PHP Handwerker migrieren im Terminal. Wenn die Migrationen erfolgreich ausgeführt wurden, sollten Sie in der Lage sein, beide Tabellen in der Datenbank mit den von Ihnen definierten Feldern anzuzeigen.

Konfigurieren des Registrierungsdienstes

Sie müssen den Registrardienst so konfigurieren, dass er das neu definierte hinzufügt Benutzer Tabellenfelder. 

Bearbeiten Sie die Datei app / Dienste / Registrar.php.

 'erforderlich | min: 3 | max: 50', 'last_name' => 'erforderlich | min: 3 | max: 50', 'email' => 'erforderlich | email | max: 255 | unique: Benutzer', 'Kennwort '=>' erforderlich | bestätigt | min: 6 ']]);  / ** * Erstellen Sie nach einer gültigen Registrierung eine neue Benutzerinstanz. * * @param array $ data * @return User * / public Funktion create (Array $ data) return User :: create (['first_name' => $ data ['first_name']), 'last_name' => $ data [ 'last_name'], 'email' => $ data ['email'], 'password' => bcrypt ($ data ['password']),]); 

Das Validator Diese Funktion validiert die übergebenen Daten des Benutzerregistrierungsformulars. Sie haben die Standardeinstellung entfernt Name Feld und fügte das hinzu Vorname und Nachname Felder mit einer Mindestlänge von drei Zeichen und einer maximalen Länge von 50 Zeichen für beide. Das erstellen Funktion fügt den registrierten Benutzer zum hinzu Benutzer Tabelle in der Datenbank, so müssen Sie nur die Vorname und Nachname Felder dazu.

Aktualisieren des Benutzermodells

Sie müssen auch das Benutzermodell aktualisieren, um die Version mit aufzunehmen Vorname und Nachname Felder. 

Bearbeiten Sie die Datei app / User.php.

Das $ ausfüllbar array gibt an, welche Felder des Modells zur Bearbeitung geöffnet sind. Im Allgemeinen enthalten Sie keine Felder, die automatisch in dieses Array generiert werden, oder Felder, für die keine Benutzereingabe wie der Hash für ein Erinnerungs-Token erforderlich ist. Alles, was Sie getan haben, ist das Update $ ausfüllbar Array, um die Vorname und Nachname massenweise zuordenbar sein.

Ansicht aktualisieren

Zum Schluss müssen Sie nur die Front-End-Ansichten aktualisieren, um die Vorname und Nachname Felder. Zuerst aktualisieren Sie das Anmeldeformular. 

Bearbeiten Sie die Datei resources / views / auth / register.blade.php.

@extends ('app') @section ('content') 
Registrieren
@if (count ($ errors)> 0)
Hoppla! Es gab einige Probleme mit Ihrer Eingabe.

    @foreach ($ errors-> all () als $ error)
  • $ error
  • @endforeach
@endif
@ endection

Sie haben das hinzugefügt Vorname und Nachname Felder zum Anmeldeformular. Sie müssen auch das Standard-App-Layout unter bearbeiten resources / views / app.blade.php , um den Namen des angemeldeten Benutzers im Navigationsmenü anzuzeigen.

      Laravel 5: Verwenden der Authentifizierungsfassade            
@ield ('Inhalt')

Sichern Sie Ihre Routen

Um Ihre Routen zu sichern und zuzulassen, dass nur angemeldete Benutzer auf sie zugreifen können, müssen Sie die von Laravel bereitgestellte Auth-Middleware verwenden. Die Auth Middleware finden Sie unter app \ http \ Middleware \ authenticate.php

Hier einige Beispiele, wie Sie Ihre Routen schützen können.

// Route schließen Route :: get ('', [' middleware '=>' auth ', function () // Wenn der Benutzer nicht angemeldet ist // er / sie wird zur Anmeldeseite // umgeleitet und dieser Code wird nicht ausgeführt)); // Controller-Aktion Route :: get ('', [' middleware '=>' auth ',' verwendet '=>'@']); // innerhalb einer Controller-Klasse erweitert YourController die Controller öffentliche Funktion __construct () $ this-> Middleware (''); $ this-> Middleware ('', [' nur '=> ['']]); $ this-> Middleware ('', [' außer '=> ['']]); 

Ändern der Standardauthentifizierungsrouten

Sie können ausführen php handwerkliche route: liste Überprüfen Sie im Terminal die Standardrouten, die von der Authentifizierungsfassade verwendet werden. Sie können auf diese Routen zugreifen, um Ihren Authentifizierungscode zu testen. Hier einige Beispiele, wie Sie diese Routen ändern können.

Bearbeiten Sie die Datei app / Http / routes.php.

// Beispiel 1 // Anmelde-URL http://www.example.com/account/login // Abmelde-URL http://www.example.com/account/logout // Registrierungs-URL http: //www.example. de / account / register Route :: Steuerungen (['account' => 'Auth \ AuthController', 'password' => 'Auth \ PasswordController',]); // Beispiel 2 // Anmelde-URL http://www.example.com/login // Abmelde-URL http://www.example.com/logout // Registrierungs-URL http://www.example.com/register Route :: controller (["=> 'Auth \ AuthController', 'password' => 'Auth \ PasswordController',]); // Beispiel 3 // alle Routen neu definieren Route :: get ('example / register', 'Auth \ AuthController @ getRegister '); Route :: post (' example / register ',' Auth \ AuthController @ postRegister '); Route :: get (' example / login ',' Auth \ AuthController @ getLogin '); Route :: post ('example / login', 'Auth \ AuthController @ postLogin'); Route :: get ('example / logout', 'Auth \ AuthController @ getLogout'); Route :: get ('example / email', 'Auth \ PasswordController @ getEmail '); Route :: post (' example / email ',' Auth \ PasswordController @ postEmail '); Route :: get (' example / reset / code ',' Auth \ PasswordController @ getReset ') ; Route :: post ('example / reset', 'Auth \ PasswordController @ postReset');

Denken Sie auch daran, die URIs in Ihren Ansichten und E-Mail-Vorlagen mithilfe der Laravel-Helfer dynamisch aufzurufen. Wie das geht, erfahren Sie im GitHub-Repository dieses Schnelltipps.

Abschließende Gedanken

Mit der Funktion zum Zurücksetzen des Passworts wird der Link zum Zurücksetzen des Passworts an die E-Mail des Benutzers gesendet. Stellen Sie daher sicher, dass die E-Mail-Konfiguration in Ihrem Laravel-Projekt eingerichtet ist. Die Ansichtsvorlage für die E-Mail zum Zurücksetzen des Kennworts befindet sich unter resources / views / emails / password.blade.php. Sie können auch einige andere grundlegende Optionen in konfigurieren config / auth.php Datei.

Ich hoffe, Sie fanden diesen schnellen Tipp leicht zu folgen. Bis zu meinem nächsten Tuts + Stück, fröhliche Kodierung!

Wenn Sie zusätzliche Hilfe bei der Behebung von Fehlern oder Anpassungen benötigen, die Ihnen unangenehm sind, wenden Sie sich an einen der PHP-Dienstanbieter von Envato Studio. Sie können schnell und zuverlässig bei einer Vielzahl von Problemen helfen, so dass Sie sich mit einer kleinen Geldinvestition viel Zeit sparen können!

PHP-Dienstleister in Envato Studio