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
, 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'); }
#2 auth.php-Dateikonfiguration
-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:
Route::group(['prefix'=>'{guard}'],function(){ Route::auth();});
$request->input('key')
$request->key
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']);
#5 Benutzerinstanz abrufen
Nach bestandener Authentifizierung können Sie die aktuell authentifizierte Benutzerinstanz über die Auth-Fassade abrufen .
$user = Auth::user();
$user = Auth::guard('guard')->user();
#6 总结
总得来说,Laravel5.2自带的Auth系统还是很好用的,只是有一些小坑文档没说清楚,用过几次之后就可以很熟悉了,可以给我们节约很多的开发时间。
相关推荐:
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!