如何自定义Laravel Breeze的密码泄露验证错误提示信息?
自定义Laravel Breeze密码泄露验证提示无效问题
编辑说明:该问题在Laravel 10.33及以上版本中已解决。
我正在开发基于Laravel Breeze的应用,当用户设置已泄露的密码(比如Password1!)时,系统会弹出默认验证提示:
您输入的密码已出现在数据泄露事件中,请选择其他密码。
开发者能理解这是安全防护措施,但普通用户可能误以为是当前网站发生了数据泄露,产生网站不安全的误解。因此我想把提示自定义为:
您输入的密码曾在互联网上的某次数据泄露事件中出现。作为安全措施,我们已禁止在本网站使用该密码。
使用技术栈
- PHP 8.1
- Laravel 10.10
- Laravel Breeze 1.21
已尝试的操作
我在RegisteredUserController的store方法中添加了自定义验证消息:
public function store(Request $request): RedirectResponse { $rules = [ // 其他验证规则 'password' => ['required', 'confirmed', Password::min(8)->mixedCase()->letters()->numbers()->symbols()->uncompromised()], ]; $messages = [ 'password.uncompromised' => '您输入的密码曾在互联网上的某次数据泄露事件中出现。作为安全措施,我们已禁止在本网站使用该密码。', ]; $this->validate($request, $rules, $messages); Auth::login($user = User::create([ // 其他用户字段 'password' => Hash::make($request->password), ])); event(new Registered($user)); Auth::login($user); (new MyController)->store($request); return redirect()->route('register_step_2'); }
问题情况
执行上述代码后,前端仍显示默认的错误提示,自定义内容未生效。
内容的提问来源于stack exchange,提问作者erlango3
相关产品推荐
相关产品推荐

