Intereting Posts
Не удается записать в базу данных MS SQL с использованием соединения PHP ODBC Расшифровка параметров Codeigniter Выполнить функцию без параметра, но нужна переменная вне функции – PHP Должен ли я использовать подготовленные инструкции для MySQL в PHP PERFORMANCE-WISE? .htaccess url переписать и удалить% 20 ​​ Бакалея CRUD Join table Изменение общего количества и tax_total Woocommerce Определение типа Mime локального файла (Content-type) с помощью PHP слияние рекурсивных на внутренних массивах многомерного массива php Прекратить выполнение PHP для цикла while или в командной строке с нажатием клавиши? PHP Native DOMDocument и простой DOM Parser – существует ли ограничение по размеру? Замените preg_replace () e модификатор на preg_replace_callback PHP конвертирует hex в байт SQL-запрос для отображения строк, которые в прошлом были старше 60+ Как я могу показать изображения вне корневого каталога в моем приложении php?

Laravel 4.2 Правила проверки – текущий пароль должен соответствовать значению базы данных

В форме сброса пароля пользователь поставляет current_password , password и password-confirmation . Есть ли способ указать в правилах проверки, что current_password (это значение hash) должен соответствовать значению базы данных?

В настоящее время у меня есть:

 $rules = array( 'current_password' => 'required', 'password' => 'required|confirmed|min:22' ); 

Спасибо.

ОБНОВИТЬ

Благодаря @ChrisForrence и @Ben, я придумал следующее, которое отлично работает! Очень признателен. Надеюсь, это поможет кому-то еще:

 Validator::extend('hashmatch', function($attribute, $value, $parameters) { return Hash::check($value, Auth::user()->$parameters[0]); }); $messages = array( 'hashmatch' => 'Your current password must match your account password.' ); $rules = array( 'current_password' => 'required|hashmatch:password', 'password' => 'required|confirmed|min:4|different:current_password' ); $validation = Validator::make( Input::all(), $rules, $messages ); 

Вы не можете, хэши bcrypt уникальны (у них есть своя собственная случайная соль), поэтому, даже если вы знали пароль пользователя с обычным текстом, вы бы не смогли сравнить хеш-хэш.

То, что вы можете сделать, это проверить обычный текстовый пароль на хэш-код bcrypt , выполнив Hash::check('plain text password', 'bcrypt hash') на вашем контроллере.