Php Laravel无法检查用户名和密码

Php Laravel无法检查用户名和密码,php,laravel,Php,Laravel,在我的Laravel项目中,我的数据库中有以下列: username | password admin $2y$10$ioLPnSSfjm6gwmraR3Ne2.4o6A/2HS1HpIhhHVCDVr3 此散列用于a,我想用此代码检查: Route::post('auth', array('as'=>'auth', 'before'=>'csrf', function(){ $user = array( 'username

在我的Laravel项目中,我的数据库中有以下列:

username    |    password
admin            $2y$10$ioLPnSSfjm6gwmraR3Ne2.4o6A/2HS1HpIhhHVCDVr3
散列
用于
a
,我想用此代码检查:

Route::post('auth', array('as'=>'auth', 'before'=>'csrf', function(){
    $user = array(
        'username' => Input::get('username'),
        'password' => Input::get('password')
    );

    if (Auth::attempt($user)) {
        echo "OK";
    }
    else echo "NO";
}));
用户名
密码
字段值返回:

Array ( [username] => admin [password] => a ) 
尝试
结果:

NO
更新帖子:

var_dump( $user );
var_dump( Auth::attempt($user) );
结果:

array(2) { ["username"]=> string(5) "admin" ["password"]=> string(1) "a" } 

bool(false) 
拉维版本:

Laravel Framework version 4.2.8

错误可能在您的用户模型中(在app/models/User.php中)。它是否实现用户界面

此外,在Auth文件(在app/config/Auth.php中)中,您应该有如下内容:

'model' => 'User',

如果您更改了用户模型,或者只是以不同的名称空间对其进行命名,则必须在auth文件中修复该问题,以便auth::尝试工作。

在幕后可能会遗漏一个愚蠢的错误。 我建议您返回数据库,将“密码”列更改为“varchar 255” 重新生成密码
a的哈希值
在密码列中设置新的哈希值,然后重试

当执行Auth::trument()时,放置普通条目也很重要。(以及你的正确做法)

调试时,只需删除
数组('as'=>'auth','before'=>'csrf')

Route::post('auth',function(){})
这将有助于快速确定问题

您是否可以通过
$user
变量的var_转储发送该变量,该变量将被传递到第7ok行的
Auth::attempt()
静态方法中,因此问题在于
Auth::attempt
方法。我不熟悉laravel-让我检查一下源代码。看起来laravel使用某种工厂方法来设置它应该检查的auth对象。您从哪里获得数据库架构?你不应该使用@jujharsing吗?我测试了你的链接。我认为这是一个错误。我的previus项目可以登录并且没有任何问题。密码是由laravel使用bcrypt哈希的吗?我的密码字段是
varchar(50)
更改后,它解决了我的问题,谢谢。