在laravel我可以获得我的用户名,但我无法获得我的密码

时间:2018-01-24 21:09:06

标签: php laravel

请有人帮助我,我的老板会杀了我,这段代码在laravel无效,因为密码是hashed,它是bcryted,我如何比较和获取我的us_id(代表username_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]);
    }
}

2 个答案:

答案 0 :(得分:1)

Laravel对密码进行了哈希处理,因此请使用Hash::check()方法:

if (\Hash::check($password, $myuser1->password)) {
  

Laravel Hash外观提供用于存储用户密码的安全Bcrypt哈希。如果您使用的是Laravel应用程序附带的内置LoginControllerRegisterController类,它们将自动使用Bcrypt进行注册和身份验证。

https://laravel.com/docs/5.5/hashing

答案 1 :(得分:0)

你不能指望这个有效。

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

您无法像这样检索密码查找记录。相反,您必须首先检索记录(基于其他一些密钥,例如用户名或ID),然后查看密码是否加密以匹配具有重要盐的给定密码。