Heim Backend-Entwicklung PHP-Tutorial Einführung in das Mehrbenutzer-Authentifizierungssystem von Laravel

Einführung in das Mehrbenutzer-Authentifizierungssystem von Laravel

Mar 14, 2018 am 09:17 AM
laravel 多用户 简介

Seit Laravel 5.2 kann das integrierte Auth-Authentifizierungssystem die Authentifizierung mehrerer Rollen unterstützen. Das heißt, wenn Sie zwei Rollen haben: Administrator und normaler Benutzer, kann die Authentifizierung über dasselbe Authentifizierungssystem erfolgen.

Dieser Artikel gibt Ihnen eine detaillierte Einführung in den relevanten Inhalt des Mehrbenutzer-Authentifizierungssystems und teilt ihn als Referenz und zum Studium. Ich werde im Folgenden nicht viel sagen, werfen wir einen Blick auf die Einzelheiten Einführung.

#1 Code automatisch generieren

Laravels eigenes Auth kann relevante Authentifizierungscontroller und -vorlagen mit einer Befehlszeile und Routing generieren:


php artisan make:auth
Nach dem Login kopieren
Dadurch wird ein AuthController-Authentifizierungscontroller und ein HomeController-Generalcontroller generiert. Dieser Controller springt nur nach erfolgreicher Anmeldung dorthin Für die Anmeldung und Registrierung sind auch einige Vorlagendateien erforderlich. Schauen Sie sich einfach die entsprechende Authentifizierungsroute an. Der Quellcode befindet sich in

, der tatsächlich einige Anmeldungen konfiguriert: IlluminateRoutingRouter::auth();


public function auth() { 
 // Authentication Routes... 
 $this->get('login', 'Auth\AuthController@showLoginForm'); 
 $this->post('login', 'Auth\AuthController@login'); 
 $this->get('logout', 'Auth\AuthController@logout'); 
 // Registration Routes... 
 $this->get('register', 'Auth\AuthController@showRegistrationForm'); 
 $this->post('register', 'Auth\AuthController@register'); 
 // Password Reset Routes... 
 $this->get('password/reset/{token?}', 'Auth\PasswordController@showResetForm'); 
 $this->post('password/email', 'Auth\PasswordController@sendResetLinkEmail'); 
 $this->post('password/reset', 'Auth\PasswordController@reset'); 
}
Nach dem Login kopieren

#2 auth.php-Dateikonfiguration

Dies ist eine Es wird geschätzt, dass viele Leute einige darin enthaltene Konzepte, wie z. B. Wächter und Anbieter, nicht verstehen können und die Dokumentation im Grunde nicht geschrieben ist. Was genau ist Wächter? Dies kann als Rolle verstanden werden. Jedes Element im Guards

-Array ist eine Rolle. Die Standardrollen sind Web und API, was bedeutet, dass diese beiden Rollen derzeit das Authentifizierungssystem verwenden. Natürlich werden diese beiden definitiv nicht unseren Anforderungen entsprechen, daher passen wir normalerweise einige Wachen an. Die Anpassung ist ebenfalls sehr einfach. Fügen Sie einfach ein Element zum Guards-Array hinzu. Der Treiber gibt an, wie der Benutzerstatus für diese Authentifizierung gespeichert werden soll, normalerweise in der Sitzung, und der Anbieter ist ein Element im Provider-Array unten Anbieter? Wolltuch? Das ist einfacher zu verstehen. Wenn Sie die Benutzerauthentifizierung implementieren möchten, müssen Sie den Benutzernamen und das Kennwort speichern. Dann teilt der Anbieter Laravel mit, in welcher Tabelle Ihre Benutzerinformationen gespeichert sind, und der Treiber teilt Laravel mit, welche Methode zum Betrieb verwendet werden soll die Datenbank.


#3 Authentifizierung
Tatsächlich kann der von Laravel automatisch generierte Code bereits die Anmelde- und Anmeldeanforderungen erfüllen Registrierung, aber jedes Mal benötigt jeder Wächter einen AuthController. Wie kann man also einen Authentifizierungscontroller freigeben? Guard wird hier verwendet, weil es die Identität des Benutzers darstellen kann, um unterschiedliche Logik auszuführen. Dieser Schutz kann jedoch nicht im Authentifizierungscontroller abgerufen werden, sodass wir ihn über Routing-Parameter erreichen können. Definieren Sie eine Routing-Gruppe:



In dieser Routing-Gruppe legen wir das Präfix für den Guard-Parameter fest, damit wir das aktuelle in AuthController Guarded erhalten können. Unter normalen Umständen erhalten wir Routing-Parameter durch Abhängigkeitsinjektion in die Request-Instanz, aber auch hier gibt es eine Gefahr: Vor Version 5.1 konnten die Routing-Parameter übergeben werden
Route::group(['prefix'=>'{guard}'],function(){ Route::auth();});
Nach dem Login kopieren



kann auf diese Weise bezogen werden, ist jedoch in 5.2 nicht mehr möglich. Es muss über
$request->input('key')
Nach dem Login kopieren



bezogen werden , oder direkt von der Routing-Instanz Get, weiß nicht warum. Einige Merkmale werden im AuthController-Controller verwendet. Diese Merkmale implementieren die Logik der Authentifizierungsregistrierung. Sie können die Logik anpassen, indem Sie einige Eigenschaften des Controllers neu schreiben. Einschließlich
$request->key
Nach dem Login kopieren
und

und $redirectTo usw. Auf einen Blick können Sie erkennen, dass der erste darin besteht, nach erfolgreicher Anmeldung zu springen, der zweite darin besteht, den aktuell verwendeten Schutz zu definieren, und der dritte darin besteht Benutzername, der für die Authentifizierung verwendet wird. Wir können es also anpassen, indem wir den Schutz im Authentifizierungscontroller erhalten. $guard$username

#4 Routenschutz
Im Allgemeinen müssen diejenigen, die Authentifizierungssysteme herstellen, Routen schützen, also was ist damit? geschütztes Routing? In dem Dokument heißt es, den zu schützenden Routen eine Authentifizierungs-Middleware hinzuzufügen, aber wie sieht die Realität aus? Dies ist tatsächlich der Fall, aber das Dokument sagt nicht, dass die durch Authentifizierungs-Middleware geschützte Route auch mit Web-Middleware hinzugefügt werden muss, dass sie auch mit Web-Middleware hinzugefügt werden muss, dass sie auch mit Web-Middleware hinzugefügt werden muss, was wichtig ist Sie haben Dinge dreimal sagen, welche Probleme würden sonst entstehen? Unabhängig davon, ob Ihre Authentifizierung erfolgreich ist oder nicht, werden Sie auf die /-Route verweisen. Seien Sie vorsichtig mit dieser großen Gefahr! Natürlich können Sie auch einen Guard in der Middleware angeben, um Laravel mitzuteilen, über welchen Guard er sich authentifizieren soll. Wenn nicht angegeben, wird der Standard in der Konfigurationsdatei verwendet:



Route::get('profile', [ 'middleware' => 'auth:api', 'uses' => 'ProfileController@show']);
Nach dem Login kopieren

#5 Benutzerinstanz abrufen
Nach bestandener Authentifizierung können Sie die aktuell authentifizierte Benutzerinstanz über die Auth-Fassade abrufen .



Eine weitere Sache, die hier zu beachten ist, ist, dass die obige Methode den Wächter standardmäßig in der Konfigurationsdatei abruft, wenn Sie derzeit beim Wächter angemeldet sind Wenn es nicht in der Konfigurationsdatei enthalten ist, müssen Sie es wie folgt abrufen:
$user = Auth::user();
Nach dem Login kopieren


$user = Auth::guard('guard')->user();
Nach dem Login kopieren

#6 总结

总得来说,Laravel5.2自带的Auth系统还是很好用的,只是有一些小坑文档没说清楚,用过几次之后就可以很熟悉了,可以给我们节约很多的开发时间。

相关推荐:

Laravel多用户认证系统


Das obige ist der detaillierte Inhalt vonEinführung in das Mehrbenutzer-Authentifizierungssystem von Laravel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Laravel – Handwerkerbefehle Laravel – Handwerkerbefehle Aug 27, 2024 am 10:51 AM

Laravel – Artisan Commands – Laravel 5.7 bietet eine neue Möglichkeit, neue Befehle zu behandeln und zu testen. Es enthält eine neue Funktion zum Testen von Handwerkerbefehlen und die Demonstration wird unten erwähnt?

Laravel – Artisan-Konsole Laravel – Artisan-Konsole Aug 27, 2024 am 10:51 AM

Laravel – Artisan Console – Das Laravel-Framework bietet drei Haupttools für die Interaktion über die Befehlszeile, nämlich Artisan, Ticker und REPL. In diesem Kapitel wird Artisan ausführlich erläutert.

Laravel – Paginierungsanpassungen Laravel – Paginierungsanpassungen Aug 27, 2024 am 10:51 AM

Laravel – Paginierungsanpassungen – Laravel enthält eine Paginierungsfunktion, die einem Benutzer oder Entwickler hilft, eine Paginierungsfunktion einzubinden. Der Laravel-Paginator ist in den Abfrage-Builder und Eloquent ORM integriert. Die Paginierungsmethode automatisch

Wie bekomme ich den Rückgabecode, wenn das Senden von E -Mails in Laravel fehlschlägt? Wie bekomme ich den Rückgabecode, wenn das Senden von E -Mails in Laravel fehlschlägt? Apr 01, 2025 pm 02:45 PM

Methode zum Abholen des Rücksendecode, wenn das Senden von Laravel -E -Mails fehlschlägt. Wenn Sie Laravel zur Entwicklung von Anwendungen verwenden, stellen Sie häufig Situationen auf, in denen Sie Überprüfungscodes senden müssen. Und in Wirklichkeit ...

Laravel -Zeitplanaufgabe wird nicht ausgeführt: Was soll ich tun, wenn die Aufgabe nicht nach Zeitplan ausgeführt wird: Befehl ausführen? Laravel -Zeitplanaufgabe wird nicht ausgeführt: Was soll ich tun, wenn die Aufgabe nicht nach Zeitplan ausgeführt wird: Befehl ausführen? Mar 31, 2025 pm 11:24 PM

Laravel -Zeitplan -Aufgabe Ausführen nicht reagierende Fehlerbehebung Bei Verwendung der Zeitplanung von Laravel -Zeitplänen werden viele Entwickler auf dieses Problem stoßen: Zeitplan: Run ...

Wie kann man in Laravel mit der Situation umgehen, in der Überprüfungscodes nicht per E -Mail gesendet werden? Wie kann man in Laravel mit der Situation umgehen, in der Überprüfungscodes nicht per E -Mail gesendet werden? Mar 31, 2025 pm 11:48 PM

Die Methode zum Umgang mit Laravels E -Mail -Versagen zum Senden von Verifizierungscode besteht darin, Laravel zu verwenden ...

So implementieren Sie die benutzerdefinierte Tabellenfunktion des Klickens, um Daten im DCAT -Administrator hinzuzufügen? So implementieren Sie die benutzerdefinierte Tabellenfunktion des Klickens, um Daten im DCAT -Administrator hinzuzufügen? Apr 01, 2025 am 07:09 AM

So implementieren Sie die Tabellenfunktion von benutzerdefiniertem Klicken, um Daten in dcatadmin (laravel-admin) hinzuzufügen, wenn Sie DCAT verwenden ...

Laravel – Dump-Server Laravel – Dump-Server Aug 27, 2024 am 10:51 AM

Laravel – Dump-Server – Der Laravel-Dump-Server wird mit der Version von Laravel 5.7 geliefert. Die Vorgängerversionen enthalten keinen Dump-Server. Der Dump-Server wird eine Entwicklungsabhängigkeit in der Laravel-/Laravel-Composer-Datei sein.

See all articles