Wie man in Laravel die Datenbanktreiber- und Anbieterauthentifizierung implementiert, ohne den eleganten Weg zu nutzen
P粉043566314
2023-08-28 09:14:37
<p>Die von Laravel unterstützten Treiber sind "<strong>database</strong>" oder "<strong>eloquent</strong>".
In der Standardeinstellung <strong>config/auth.php</strong> können wir sehen, dass dort immer angegeben ist, dass der Treiber eloquent ist. </p>
<pre class="brush:php;toolbar:false;">```
/*
|------------------------------------------------- ---------
|. Benutzeranbieter
|------------------------------------------------- ---------
|
|. Alle Authentifizierungstreiber haben einen Benutzeranbieter. Dies definiert, wie die Daten des Benutzers tatsächlich aus der Datenbank oder einem anderen Speichermechanismus abgerufen werden.
|
|. Wenn Sie über mehrere Benutzertabellen oder -modelle verfügen, können Sie mehrere Quellen konfigurieren, die jedes Modell/jede Tabelle darstellen. Diese Quellen können dann jedem von Ihnen definierten zusätzlichen Authentifizierungsschutz zugewiesen werden.
|
|. Unterstützt: „Datenbank“, „eloquent“
|
*/
'Anbieter' =>
'Benutzer' =>
'driver' => 'eloquent',
'model' => AppModelsUsers::class,
],
// 'Benutzer' =>
// 'Treiber' => 'Datenbank',
// 'table' => 'users',
// ],
],
```</pre>
<p>Dann haben wir ein Schema <strong>Benutzer</strong>, das mit der Tabelle Benutzer verknüpft ist, um die Authentifizierung zu überprüfen.
Daher können wir einige der <strong>auth</strong>-Methoden verwenden: <strong>auth::check(), auth::atemp(), auth:login(),...</strong> ;
Wenn ich nicht Model AppModels::class verwende, sondern <strong>'driver' => 'database'</strong>, wie kann ich dann einige <strong>auth</strong>-Funktionen verwenden? Autorisierung Wolltuch? </p>
只需将驱动更改为数据库,您可以轻松地注释掉eloquent部分并取消注释驱动数据库部分,您可以像以前一样正常使用auth()。 Laravel的auth功能即插即用。
您可以在AuthController中设计您的signIn方法,如下所示:
它将在eloquent和数据库驱动程序中都起作用。