我是否已经被泄露

一个用于检查密码是否已被泄露的插件

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: "请选择一个更安全的密码。"
})

安全注意事项

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