Dans Laravel, comment implémenter l'authentification du pilote de base de données et du fournisseur sans utiliser la méthode élégante
P粉043566314
P粉043566314 2023-08-28 09:14:37
0
1
432
<p>Les pilotes pris en charge par Laravel sont "<strong>database</strong>" ou "<strong>eloquent</strong>» pour autoriser le site Web. Dans le fichier <strong>config/auth.php</strong> par défaut, nous pouvons voir qu'il indique toujours que le pilote est éloquent. </p> <pre class="brush:php;toolbar:false;">``` /* |------------------------------------------------- ----------------------- Fournisseurs d'utilisateurs | |------------------------------------------------- ----------------------- | | Tous les pilotes d'authentification ont un fournisseur d'utilisateurs. Cela définit la manière dont les données de l'utilisateur sont réellement récupérées de la base de données ou d'un autre mécanisme de stockage. | | Si vous disposez de plusieurs tables ou modèles utilisateur, vous pouvez configurer plusieurs sources représentant chaque modèle/table. Ces sources peuvent ensuite être affectées à toute protection d'authentification supplémentaire que vous définissez. | | Pris en charge : "base de données", "éloquent" | */ 'fournisseurs' => 'utilisateurs' => 'driver' => 'éloquent', 'modèle' => AppModelsUsers::class, ], // 'utilisateurs' => // 'pilote' => 'base de données', // 'table' => 'utilisateurs', // ], ], ```</pré> <p>Nous avons ensuite un schéma <strong>User</strong> associé à la table User pour vérifier l'authentification. Par conséquent, nous pouvons utiliser certaines des méthodes <strong>auth</strong> : <strong>auth::check(), auth::atemp(), auth:login(),...</strong> ; Si je n'utilise pas Model AppModelsUsers::class, mais que j'utilise <strong>'driver' => 'database'</strong>, comment puis-je utiliser certaines fonctions <strong>auth</strong> autorisation Drap de laine ? </p>
P粉043566314
P粉043566314

répondre à tous(1)
P粉781235689

Changez simplement le pilote en base de données, vous pouvez facilement commenter la partie éloquente et décommenter la partie base de données du pilote et vous pouvez utiliser auth() normalement comme avant. La fonctionnalité d'authentification de Laravel est plug and play.

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

Vous pouvez concevoir votre méthode de connexion dans AuthController comme ceci :

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('登录详细信息无效');
    }

Cela fonctionnera à la fois dans les pilotes éloquents et de base de données.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal