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

Comment vérifier que le mot de passe d'entrée correspond au mot de passe haché de la base de données dans Laravel 8

<p>Comment vérifier le mot de passe de l'utilisateur à partir d'une requête donnée dans Laravel ? Comment le mot de passe est-il comparé au hachage du mot de passe stocké dans la base de données ? ** C'est mon contrôleur **</p> <pre class="brush:php;toolbar:false;"><?php espace de noms AppHttpControllers ; utilisez IlluminateHttpRequest ; utilisez IlluminateSupportFacadesDB ; la classe MainController étend le contrôleur { fonction login1 (Requête $request){ $nom d'utilisateur = $request->input('nom d'utilisateur'); $mot de passe = $request->input('mot de passe'); $data = DB::table('users')->where(['username'=>$username, 'password'=>$password])->first(); si($données == null){ echo "erreur" ; $notification = tableau( 'message' => 'L'utilisateur n'existe pas ! ', 'type d'alerte' => 'erreur' ); return back()->avec($notification); } autre{ $request->session()->put('user',$data); return redirect('tableau de bord'); } }}</pre></p>
P粉129731808P粉129731808441 Il y a quelques jours495

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

  • P粉373990857

    P粉3739908572023-08-29 00:51:27

    Comme ça

    $encrypted = Crypt::encrypt('password_name_variable');

    répondre
    0
  • P粉071559609

    P粉0715596092023-08-29 00:50:53

    En gros, ce que vous voulez faire c'est :

    1. Requête userstable pour les utilisateurs avec un nom d'utilisateur donné.
    2. Vérifiez si leur mot de passe haché correspond au hachage du mot de passe fourni.

    Donc, vous voulez d'abordinterroger les utilisateurs avec un nom d'utilisateur donné. Ensuite, après récupération de l'utilisateur et vérification de son existence, vous pouvez vérifier si le mot de passe fourni correspond au mot de passe haché sur le modèle récupéré.

    public function login(Request $request): Response
    {
        $user = User::where('username', $request->get('username'));
    
        if (!$user || !Hash::check($request->get('password'), $user->password)) {
            return back()->with([
                'message' => '用户名和/或密码不正确。',
                'alert-type' => 'error'
            ]);
        }
    
        $request->session()->put('user', $user);
    
        return redirect('dashboard');
    }
    

    Cependant, il existe des fonctions intégrées dans Laravel pour y parvenir, et selon vos besoins, il peut être plus simple de procéder ainsi :

    public function login(Request $request): Response
    {
      if (!Auth::attempt(['username' => $request->get('username'), 'password' => $request->get('password')]) {
            return back()->with([
                'message' => '用户名和/或密码不正确。',
                'alert-type' => 'error'
            ]);
        }
    
        return redirect('dashboard');
    }

    https://laravel.com/api/8.x/Illuminate/Support/Facades/Auth.html#method_attempt

    répondre
    0
  • Annulerrépondre