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粉129731808
P粉129731808 2023-08-28 14:25:49
0
2
549
<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粉129731808
P粉129731808

répondre à tous(2)
P粉373990857

Comme ça

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

P粉071559609

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

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