Heim  >  Fragen und Antworten  >  Hauptteil

Wie man in Laravel die Datenbanktreiber- und Anbieterauthentifizierung implementiert, ohne den eleganten Weg zu nutzen

<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粉043566314P粉043566314390 Tage vor349

Antworte allen(1)Ich werde antworten

  • P粉781235689

    P粉7812356892023-08-29 00:01:31

    只需将驱动更改为数据库,您可以轻松地注释掉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和数据库驱动程序中都起作用。

    Antwort
    0
  • StornierenAntwort