Maison  >  Questions et réponses  >  le corps du texte

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>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粉043566314P粉043566314390 Il y a quelques jours347

répondre à tous(1)je répondrai

  • P粉781235689

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

    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.

    répondre
    0
  • Annulerrépondre