Php Laravel无法检查用户名和密码
在我的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
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)
更改后,它解决了我的问题,谢谢。