Hash :: check () всегда возвращает false - PullRequest
2 голосов
/ 25 марта 2019

Я пытаюсь проверить пароль ввода пользователя при входе в систему и хэшированный пароль в базе данных, но он всегда возвращает false.

Это код в контроллере. Хэширование пароля

$doctor = new doctor;
    $doctor->name = $request->name;
    $doctor->address = $request->address;
    $doctor->email = $request->email;
    $doctor->mobile = $request->mobile;
    $password = Hash::make($request->doctorPassword);
    $doctor->doctorPassword = $password;

Это код для проверки пароля: $ data = $ request-> all ();

    $user = doctor::where('email',$data['doctorUsername'])->first();
    if ($user) {

        if (Hash::check($user->doctorPassword, $data['doctorPassword']))
        {
            return view($this->filePath . '.doctorProfile');
        }

}

Всегда возвращает false.

Ответы [ 2 ]

5 голосов
/ 25 марта 2019

Ваш порядок аргументов неверен.Вы должны добавить текстовую версию пароля first примерно так:

Hash::check($data['doctorPassword'], $user->doctorPassword);
0 голосов
/ 25 марта 2019

Я думаю, что все в порядке здесь.Просто поместите hashedPassword $user->doctorPassword в качестве второго аргумента в Hash :: check ().Приветствия: D

$user = doctor::where('email',$data['doctorUsername'])->first();
    if ($user) {

        if (Hash::check($data['doctorPassword'], $user->doctorPassword))
        {
            return view($this->filePath . '.doctorProfile');
        }

Пожалуйста, проверьте эту ссылку: https://laravel.com/docs/5.8/hashing

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...