我被泄露了吗 (Have I Been Pwned)
Have I Been Pwned 插件通过阻止使用在已知数据泄露事件中暴露的密码,帮助保护用户账户安全。它使用 Have I Been Pwned API 来检查密码是否已被泄露。
安装
将插件添加到您的 auth 配置中
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 个字符
- 完整的密码永远不会被传输
- 为账户安全提供额外的保护层