我做错了什么?
<?php
public function login() {
$user_name = time();
User::create(array(
'name' => $user_name,
'email' => $user_name.'@test.com',
'password' => Hash::make('123123'),
));
$user = array(
'email' => $user_name.'@test.com',
'password' => '123123',
);
$m = User::where('email' , '=', $user_name.'@test.com')->first();
dd([
'Auth::attempt($user)',
Auth::attempt($user),
'Auth::check()',
Auth::check(),
'Hash::check($m->password, \'123123\')',
Hash::check($m->password, '123123')
]);
}
结果:
array(6) {
[0]=>
string(20) "Auth::attempt($user)"
[1]=>
bool(false)
[2]=>
string(13) "Auth::check()"
[3]=>
bool(false)
[4]=>
string(38) "Hash::check($user->password, '123123')"
[5]=>
bool(false)
}
不确定我应该添加哪些信息。
应用程序/配置/ auth.php
'driver' => 'eloquent',
'model' => 'User',
'table' => 'users',
应用程序/配置/ app.php
'key' => 'DMmiPAxSYz4O2jG44S92OcdPZN7ZsGGs',
'cipher' => MCRYPT_RIJNDAEL_256,
模型/ user.php的
<?php
use Illuminate\Auth\UserTrait;
use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableTrait;
use Illuminate\Auth\Reminders\RemindableInterface;
class User extends Eloquent implements UserInterface, RemindableInterface {
use UserTrait, RemindableTrait;
/**
* Validation rules
*/
public static $rules = array(
'name' => 'required',
'email' => 'email|required|unique',
'password' => 'min:6',
);
/**
* Validation rules
*/
public static $messages = array(
'name.required' => 'The name field is required',
'email.email' => 'The email field must contain properly formatted email.',
'email.required' => 'The email field is required',
'password.required' => 'The password field is required',
'password.min:6' => 'The password must be minimum 6 characters long',
);
protected $table = 'users';
protected $hidden = array('password', 'remember_token');
protected $guarded = array('id');
public function setPasswordAttribute($value) {
if ($value) {
$this->attributes['password'] = Hash::make($value);
}
}
}
答案 0 :(得分:0)
这里有一些你可以做的检查
config/auth.php
驱动程序,型号和表格?fillable
数组?key
内的config/app.php
?还尝试使用dd($ m)来查看从该查询中获得的内容。
答案 1 :(得分:0)
我发现了什么问题。
第一次使用这段代码哈希密码:
User::create(array(
'name' => $user_name,
'email' => $user_name.'@test.com',
'password' => Hash::make('123123'), // <---- first time
));
用户模型中的这个mutator在将密码输入数据库之前第二次进行哈希处理:
public function setPasswordAttribute($value) {
if ($value) {
$this->attributes['password'] = Hash::make($value); // <---- second time
}
}
所以我刚刚改变了第一个块:
User::create(array(
'name' => $user_name,
'email' => $user_name.'@test.com',
'password' => '123123', // <---- no hashing here
));