【问题标题】:comparing confirmation password against a hashed password | Laravel 4将确认密码与散列密码进行比较 |拉拉维尔 4
【发布时间】:2013-08-27 20:03:15
【问题描述】:

我正在尝试让确认密码与表单中的密码字段对应。我通过了 Validator 方法,它们似乎都工作得很好。但是,当尝试确认密码时,每次它们必须匹配时,我都会收到一条错误消息。抓挠我的头,我只能确定这是因为它们在通过验证之前被散列了。我不确定如何解决这个问题,因为它们需要在输入数据库之前进行哈希处理。有什么想法吗?

获取注册控制器

        public function getSignUp() {
            $userdata = array(
                'email' => Input::get('email'),
                'password' => Hash::make(Input::get('password')),
                'confirm_password' => Hash::make(Input::get('confirm_password')),
                'user_zip_code' => Input::get('user_zip_code')         
            );

            $rules = array(
                'email' => 'required|email|unique:users,email',
                'password' => 'required|min:5',
                'confirm_password' => 'required|same:password',
                'user_zip_code' => 'required'
            );

            $validation = Validator::make($userdata, $rules);

            if($validation->fails()){
                return Redirect::to('signup')->withErrors($validation)->withInput();
            } 

            $user = new User($userdata);
            $user->save();

            return Redirect::to('login');
    }

如果需要更多代码,请告诉我。我只是简单地将 withErrors 转到注册页面的刀片模板

【问题讨论】:

    标签: php mysql hash laravel laravel-4


    【解决方案1】:

    不要将散列密码传递给验证器。在保存之前对其进行哈希处理:

    public function getSignUp() {
        $userdata = array(
            'email' => Input::get('email'),
            'password' => Input::get('password'),
            'confirm_password' => Input::get('confirm_password'),
            'user_zip_code' => Input::get('user_zip_code')         
        );
    
        $rules = ...
    
        $validation = Validator::make($userdata, $rules);
    
        if($validation->fails()){
            return Redirect::to('signup')->withErrors($validation)->withInput();
        } 
    
        $userdata['password'] = Hash::make($userdata['password']);
    
        $user = new User($userdata);
        $user->save();
    
        return Redirect::to('login');
    }
    

    【讨论】:

      猜你喜欢
      • 2016-09-19
      • 2013-11-25
      • 2020-08-09
      • 1970-01-01
      • 2018-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多