使用哈希密码创建用户

时间:2014-10-21 15:16:40

标签: laravel laravel-4

我的laravel问题我需要做一个应用程序,需要输入密码。

我的观看代码是:

{{ Form::open(array('route' => 'users.store')) }}
<li>
   {{ Form::label('password', 'Confirmar Password:') }}
   {{ Form::password('password_confirmation') }}
</li>
{{Form::close()}}

我的控制器是:

public function store()
    {
        $input = Input::all();
        $validation = Validator::make($input, User::$rules);

        if ($validation->passes())
        {
            User::create($input);

            return Redirect::route('users.index');
        }

        return Redirect::route('users.create')
            ->withInput()
            ->withErrors($validation)
            ->with('message', 'Existem erros de validação.');
    }

我需要在数据库中保存用户密码哈希,你能帮帮我吗?非常感谢你。

1 个答案:

答案 0 :(得分:1)

我建议您自己添加数组中的每个项目......

User::create(array(
    'username' => Input::get('username'),
    'password' => Hash::make(Input::get('password'))
));

此外,您可以在用户模型中创建一个mutator,它将为您设置。这种方法更容易,但在最终开始保存像上面这样的哈希密码的情况下并不安全。如果发生这种情况,您就会开始看到双哈希密码。

public function setPasswordAttribute($password)
{
    $this->attributes['password'] = Hash::make($password);
}