我被泄露了吗 (Have I Been Pwned)

Have I Been Pwned 插件通过阻止使用在已知数据泄露事件中暴露的密码,帮助保护用户账户安全。它使用 Have I Been Pwned API 来检查密码是否已被泄露。

安装

将插件添加到您的 auth 配置中

auth.ts
import { betterAuth } from "better-auth"
import { haveIBeenPwned } from "better-auth/plugins"

export const auth = betterAuth({
    plugins: [
        haveIBeenPwned()
    ]
})

使用方法

当用户尝试使用已被泄露的密码创建账户或更新密码时,他们将收到以下默认错误信息:

{
  "code": "PASSWORD_COMPROMISED",
  "message": "密码已被泄露"
}

配置

您可以自定义错误消息:

haveIBeenPwned({
    customPasswordCompromisedMessage: "请选择一个更安全的密码。"
})

安全说明

  • 仅向 API 发送密码哈希值的前 5 个字符
  • 完整的密码永远不会被传输
  • 为账户安全提供额外的保护层

On this page