Laravel 的 验证旧密码的验证代码

更新密码这是一个非常常用的功能,我们需要为用户提供一个更改密码的方式。安全一些的方式是通过验证旧密码,再更新密码,以免由于“记住我”功能导致的密码被盗改。
一般来说,Laravel 的更改密码都是通过 RestPassword Email 来实现的,但是我更倾向用户可以在后台更改。所以,便在这里贴下相关的代码,借助下方的代码,可以实现验证用户密码,旧密码验证通过后,再进行新的密码的更新。
 App\Providers\AppServiceProvider 中的 Boot 方法中添加如下代码。

Validator::extend('password_hash_check', function($attribute, $value, $parameters, $validator) {
            return Hash::check($value , $parameters[0]) ;
        });

在对应的表单请求中,添加如下的调用。

use Auth;
/**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        $password = Auth::user()->password;
        return [
            'old_password' => "required|password_hash_check:" . $password,
            "password" => "required|min:6|max:25|confirmed",
        ];
    }

(上述代码采用的是表单请求的方式来进行验证的,使用方法参看:Validation

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注