在我的Laravel项目中,数据库中有这些列:
username | password
admin $2y$10$ioLPnSSfjm6gwmraR3Ne2.4o6A/2HS1HpIhhHVCDVr3
这Hash
是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";
}));
username
和password
字段值返回:
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] 删除。
我来说两句