Hash :: check()始终返回false

时间:2019-03-25 12:22:56

标签: laravel hash passwords

我正在尝试在登录时检查用户输入的密码以及数据库中的哈希密码,但是它始终返回false。

这是控制器中的代码散列密码

from fabric import Connection
#for host in ('server1','server2'):
 #   connect_kwargs={"password": "********"}
re = Connection(host="madhu@server1", connect_kwargs={"password": "*****"}).run('w')

    #result = Connection(host).run('w')
print("{}: {}".format("host", re.stdout.strip()))

这是用于验证密码的代码:       $ data = $ request-> all();

env.passwords = {'root@IP1': 'pass11' , 'root@IP1': 'pass11', 'root@IP3':'pass'}

}

总是返回false。

2 个答案:

答案 0 :(得分:5)

您的参数顺序不正确。您应该像这样添加密码的 first 纯文本版本:

Hash::check($data['doctorPassword'], $user->doctorPassword);

答案 1 :(得分:0)

我认为这里一切都很好。只需将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