散列密码但仍然简单地使用 Eloquents ::create($input)
Hash a password but still simply use Eloquents ::create($input)
使用 Laravel 4.2 用户系统并进行注册。
验证通过后我这样做:
User::create($input);
return Redirect::to('/');
它正确地存储了我的用户,但它当然有一个未散列的密码,因为它刚刚传入:
$Input = Input::all();
我不想手动将所有字段添加到创建方法中,有没有办法仍然只传入 $input,但对密码部分进行哈希处理?
我还应该在 Laravel 上使用散列或加密作为密码吗?
您不需要添加所有字段。一种选择是仅从输入数组中检索密码字段并将其替换为散列密码。
$input = \Input::all();
// get the password and save it with its hash
$input['password'] = \Hash::make($input['password']);
User::create($input);
return Redirect::to('/');
您正在使用Eloquent
模型,因此您可以通过模型本身轻松转换密码属性。
只需将此函数添加到您的 Eloquent
模型中,然后做您正在做的任何事情,无需更改 $input
数组。
public function setPasswordAttribute($password)
{
$this->attributes['password'] = \Hash::make($password);
}
这样您就可以对您的请求数据属性应用任何类型的修改。
使用 Laravel 4.2 用户系统并进行注册。
验证通过后我这样做:
User::create($input);
return Redirect::to('/');
它正确地存储了我的用户,但它当然有一个未散列的密码,因为它刚刚传入:
$Input = Input::all();
我不想手动将所有字段添加到创建方法中,有没有办法仍然只传入 $input,但对密码部分进行哈希处理?
我还应该在 Laravel 上使用散列或加密作为密码吗?
您不需要添加所有字段。一种选择是仅从输入数组中检索密码字段并将其替换为散列密码。
$input = \Input::all();
// get the password and save it with its hash
$input['password'] = \Hash::make($input['password']);
User::create($input);
return Redirect::to('/');
您正在使用Eloquent
模型,因此您可以通过模型本身轻松转换密码属性。
只需将此函数添加到您的 Eloquent
模型中,然后做您正在做的任何事情,无需更改 $input
数组。
public function setPasswordAttribute($password)
{
$this->attributes['password'] = \Hash::make($password);
}
这样您就可以对您的请求数据属性应用任何类型的修改。