dimanche 24 février 2019

Hash::check in Laravel 5 is not working, always return false?

I use hash check to compare between current password which is inputted by the user and current password which is stored in the database (Bcrypt)

Here is my source code

    $user = User::findOrFail($request->id);
    if (Hash::check($request->password, $user->password)) { 
       $user->fill([
        'password' => Hash::make($request->newPassword)
        ])->save();

       $request->session()->flash('success', 'Password changed');
        // return redirect()->route('your.route');
       echo "Hash match";

    } else {
        $request->session()->flash('error', 'Password does not match');
        // return redirect()->route('your.route');
        echo "Hash does not matched";
    }

My problem is the Hash:check always return false ("Hash does not matched")

I put the variable in hash check like this

Hash::check(new password plain text, bcrypt value in db)

Before the Hash check is called. I try to print the variable to investigate why it not working. I found my plain text of the new password is already sent and I already got the bcrypt password from the database as well. Everything looks fine it should be worked. I don't know what is my mistake. I follows a lot of topic on this site to solve my problem as I tried it does not work for me. Anyone, please help me.

Thank you.



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire