You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何自定义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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 03:45:08