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

Sil*_*l05 12 php laravel laravel-4

我在使用手动登录用户时遇到问题Auth::loginUsingId .在我这样做之前,我需要检查密码是否匹配,是否存在问题.密码比较总是返回false;

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

    $user = User::create([
        'password' => Hash::make(Input::get('password')),
    ]);
Run Code Online (Sandbox Code Playgroud)

这就是我尝试比较这两个密码的方法

$u = User::where('username', $username)->first();    
$password = Hash::make(Input::get('password'));
var_dump($u->password == $password);
Run Code Online (Sandbox Code Playgroud)

这是假的,我不知道问题出在哪里.

编辑: 在DB字段中,varchar是70个字符长,哈希是60个字符长

好的,我注意到:每次Hash :: make都会从我的密码中提供另一个字符串.怎么可能呢?我的意思是如何Auth::attempt运作?

Ana*_*nam 18

请尝试以下方法:

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

if (Hash::check(Input::get('password'), $u->password))
{
    // The passwords match...
}
Run Code Online (Sandbox Code Playgroud)