Wie man in Laravel die Datenbanktreiber- und Anbieterauthentifizierung implementiert, ohne den eleganten Weg zu nutzen
P粉043566314
P粉043566314 2023-08-28 09:14:37
0
1
431
<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>
P粉043566314
P粉043566314

Antworte allen(1)
P粉781235689

只需将驱动更改为数据库,您可以轻松地注释掉eloquent部分并取消注释驱动数据库部分,您可以像以前一样正常使用auth()。 Laravel的auth功能即插即用。

'users' => [
    'driver' => 'database',
    'table' => 'users', //或者您用于用户的任何表。
]

您可以在AuthController中设计您的signIn方法,如下所示:

public function signIn(Request $request)
    {
        $request->validate([
            'email' => 'required|email',
            'password' => 'required'
        ]);

        $credentials = $request->only('email', 'password');

        if (Auth::attempt($credentials)) {
            return redirect('/');
        }

        return redirect('login')->withErrors('登录详细信息无效');
    }

它将在eloquent和数据库驱动程序中都起作用。

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage