Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在laravel中,我可以获取用户名,但无法获取密码_Php_Laravel - Fatal编程技术网

Php 在laravel中,我可以获取用户名,但无法获取密码

Php 在laravel中,我可以获取用户名,但无法获取密码,php,laravel,Php,Laravel,请有人帮帮我,我的老板会杀了我的,这个代码在laravel中不起作用,因为密码是散列的,它是bcryted,我如何比较和获取我的us_id,它代表用户名,一个试图登录但密码错误的密码,你有什么建议吗,我尝试做的很简单,我试图了解用户是否输入了错误的密码,但他/她的用户名是正确的。我是初学者。很抱歉:。我知道这不起作用,但是如果用户输入了错误的密码,我应该怎么做才能理解呢 public function login(Request $request, Logs $logs) { $pas

请有人帮帮我,我的老板会杀了我的,这个代码在laravel中不起作用,因为密码是散列的,它是bcryted,我如何比较和获取我的us_id,它代表用户名,一个试图登录但密码错误的密码,你有什么建议吗,我尝试做的很简单,我试图了解用户是否输入了错误的密码,但他/她的用户名是正确的。我是初学者。很抱歉:。我知道这不起作用,但是如果用户输入了错误的密码,我应该怎么做才能理解呢

public function login(Request $request, Logs $logs)
{

    $password = $request->input('password');

    $myuser = \DB::table('users')->where('password', $password)->first();

    if (\Hash::check($password, $myuser->password)) {
        $logdata = $myuser->id;
        $logs->insert($logdata);
        return view('MainPages.example', ['pass' => $password]);
    }
}

密码由Laravel散列,因此请使用Hash::check方法:

Laravel哈希facade为存储用户密码提供了安全的Bcrypt哈希。如果您正在使用Laravel应用程序附带的内置LoginController和RegisterController类,它们将自动使用Bcrypt进行注册和身份验证


你不能指望这会奏效

密码是加密存储的。理论上,多个人可以拥有完全相同的密码,但没有一个人在存储时看起来是完全相同的。因此,您不知道要在记录中查找什么,即使您知道要查找的密码,因为您不知道存储该记录的特定记录使用了什么salt


在这样的密码查找中,您无法检索记录。相反,您必须首先根据其他密钥(例如用户名或id)检索记录,然后查看密码是否加密以与具有非常重要的salt的给定密码匹配。

谢谢,但不是,我使用bcrypt保存了密码,并且我也尝试了这一点,首先我将输入的密码转换为bcrypt,然后我做了比较,但仍然没有。我不知道该怎么办。我在这里被困了几个小时。@Salamander当您使用bcrypt时,您使用的是Hash::make方法来加密密码。试试代码。@Salamander use Hash::check,我在一分钟前更新了代码,有一个输入错误。当你不加密密码时,你应该如何用密码“选择”用户。。。仔细看。。它为null,因为您正在执行$myuser1=User::where'password',$password->first;。使用username获取用户$myuser1=user::where'username',$username->first;我想做的只是检查用户何时尝试登录,他的密码是否错误,或者他的用户名是否错误,我想将该用户Id存储在日志数据库中。就这些。但是这个密码让我头疼,我什么都试过了。我知道密码在那里,但我不知道如何检查用户的密码是否出错。我想更正此身份验证,我是初学者,但我确实尝试过:@Salamander这就是为什么您必须比较哈希,而不是密码themsevles@Octopus我试着用用户用户名查找它。但它也失败了。你有什么建议:?@Salamander,首先只使用用户名检索整个记录。然后使用该记录中的密码作为哈希函数中的第二个参数,正如Alexey在回答中所示。
if (\Hash::check($password, $myuser1->password)) {