Laravel 10强密码验证无法正常工作,如何正确实现?
Laravel 10 强密码验证修复方案
1. 确认必要类导入
先确保代码顶部已经导入Laravel官方的密码验证规则类:
use Illuminate\Validation\Rules\Password;
2. 修正验证规则写法
你的代码中字符串规则与规则对象的组合方式存在问题,以下两种正确写法任选其一:
写法一:链式整合所有规则
将required和confirmed直接整合到规则链中,语法更统一:
'password' => [ Password::min(8) ->letters() ->mixedCase() ->numbers() ->symbols() ->uncompromised() ->required() ->confirmed() ],
写法二:数组拆分规则
如果要保留字符串规则形式,需将required|confirmed拆分为独立的数组元素,避免与规则对象冲突:
'password' => [ 'required', 'confirmed', Password::min(8) ->letters() ->mixedCase() ->numbers() ->symbols() ->uncompromised() ],
3. 排查额外问题
- 若规则仍不生效,检查控制器中是否正确调用了验证方法(比如
$request->validate()),前端是否通过@error('password')指令正确渲染错误提示。 uncompromised()规则依赖外部API,若服务器无法访问haveibeenpwned.com,可先移除该规则测试基础验证逻辑是否正常,后续再处理网络访问权限问题。
内容的提问来源于stack exchange,提问作者Abdul Aziz
相关产品推荐
相关产品推荐

