Laravel无法检查用户名和密码

不要停下来

在我的Laravel项目中,数据库中有这些列:

username    |    password
admin            $2y$10$ioLPnSSfjm6gwmraR3Ne2.4o6A/2HS1HpIhhHVCDVr3

Hasha为此代码,我想检查一下:

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";
}));

usernamepassword字段值返回:

Array ( [username] => admin [password] => a ) 

attempt 结果:

NO

更新后:

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

结果:

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

bool(false) 

Laravel版本:

Laravel Framework version 4.2.8
奥古占

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

何时执行Auth :: attempt()以及放置简单条目也很重要。(以及您做对的事情)

而且当进行调试时非常简单,就像消除array('as'=>'auth', 'before'=>'csrf'); Route::post('auth', function(){});它可以帮助快速确定问题

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章