我想在使用Laravels默认忘记密码系统时更改密码验证。我需要这样做,所以我可以用这个验证规则替换密码验证规则:
'password' => 'required|min:6|max:15|confirmed',
具体来说,我需要添加最小/最大更改。
但是,我没有在ForgotPasswordController或ResetPasswordController中看到任何可以执行此操作的地方....
我正在使用Laravel 5.3。
答案 0 :(得分:2)
您可以在ResetPasswordController
中执行此操作,只需覆盖规则方法。
protected function rules()
{
return [
'token' => 'required',
'email' => 'required|email',
'password' => 'required|confirmed|min:6',
];
}
希望这有帮助
答案 1 :(得分:0)
因为您正在处理密码数据。您不会考虑密码的长度,但密码的有效格式也不能包含任何奇怪的特殊字符,甚至空格/空白字符。
我想与您分享我们的基本解决方案,这些解决方案在我们构建的许多项目中都有效并且一直在使用它。
创建一个自定义验证器并通过以下说明进行注册。
为密码格式创建自定义验证程序,为我们的名为" CustomValidator
"的自定义验证程序创建了一个customClass。将Illuminate\Validation\Validator
类扩展到您的自定义类。
public function validatePasswordFormat($ attribute,$ value,$ parameters){ return preg_match((" / ^(?=。)[A-Za-z \ d] [A-Za-z \ d!@#$%^& ()_ +] {2,25} $ /&#34),$值);}
带有特殊字符的字母数字!@#$%^& *()_ + 仅限2-25个字符范围。你可以随时改变它。
将自定义验证程序引导至应用服务提供商。
public function boot(){
Validator::resolver(function($translator,$data,$rules,$messages){
return new CustomValidator($translator,$data,$rules,$messages);
}); }
在您的请求中轻松使用。
<强>&#39;密码&#39; =&GT; &#34;需| password_format&#34; 强>
然后在您的消息中回复错误。
<强>&#39; password_format&#39; =&GT; &#34;密码格式无效。 blah blah blah&#34;
我希望这会对你有所帮助。