Php Laravel-手动登录前检查密码

Php Laravel-手动登录前检查密码,php,laravel,laravel-4,Php,Laravel,Laravel 4,使用Auth::loginUsingId . 在此之前,我需要检查密码是否匹配,这是我的问题。密码比较总是返回false 这就是我将密码保存到DB的方式: $user = User::create([ 'password' => Hash::make(Input::get('password')), ]); 这就是我试图比较这两个密码的方式 $u = User::where('username', $username)->first(); $

使用
Auth::loginUsingId
. 在此之前,我需要检查密码是否匹配,这是我的问题。密码比较总是返回false

这就是我将密码保存到DB的方式:

    $user = User::create([
        'password' => Hash::make(Input::get('password')),
    ]);
这就是我试图比较这两个密码的方式

$u = User::where('username', $username)->first();    
$password = Hash::make(Input::get('password'));
var_dump($u->password == $password);
这是返回false,我不知道问题出在哪里

编辑: 在DB字段中,varchar的长度为70个字符,hash的长度为60个字符

好的,我注意到:每次Hash::make都会从我的密码中给出另一个字符串。这怎么可能呢?我的意思是,然后如何
Auth::trunt
工作?

尝试以下方法:

$user = User::where('username', $username)->first();  

if (Hash::check(Input::get('password'), $user->password))
{
    // The passwords match...
}

结果将包括盐。那么,你看到的价值是什么?比较
$u->password
$password
时,您得到的确切值是什么?您确定创建时键入的密码与登录时输入的密码完全相同吗?也可以检查
Hash::make(“”)的值
并在登录时将其与DB hash value&
hash::make(输入::get('password'))
进行比较。另外,FFS也可以使用
==
进行比较。我更新了问题,在这里我选中了
hash::make
,因为您要求它生成一个新的hash(使用一个新的随机salt)。您不认为应该使用
Hash::check()