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

Better Auth + Prisma + PostgreSQL 自定义用户字段后前端类型错误及字段undefined问题求助

Better Auth + Prisma + PostgreSQL 自定义用户字段后前端类型错误及字段undefined问题求助

嘿,我之前用Better Auth搭配Prisma的时候也碰到过类似的类型不匹配问题,结合你给出的代码和报错信息,给你梳理几个实用的排查方向:

1. 先修正Prism适配器的数据库配置错误

看你的auth.ts里,明明用的是PostgreSQL,但prismaAdapter里写的是provider: "mysql":

database: prismaAdapter(prisma, { provider: "mysql", }),

这个配置不匹配很可能会导致CLI生成类型时出现异常,先把它改成provider: "postgresql",然后重新运行一次npx @better-auth/cli generate,确保类型文件是基于正确的数据库生成的。

2. 确认前端使用的Auth Client包含自定义字段的类型

Better Auth的CLI生成的类型文件会自动包含你定义的additionalFields信息,要确保前端的authClient是直接从后端导出的实例,而不是自己重新初始化的——如果前端单独初始化客户端,类型会缺失自定义字段。

如果还是不行,可以手动在前端扩展类型(作为临时解决办法):

// 放在前端项目的类型声明文件里,比如types/better-auth.d.ts
declare module "@better-auth/client" {
  interface SignUpEmailParams {
    first_name: string;
    middle_name?: string;
    last_name: string;
    suffix?: string;
  }
}

这样TypeScript就能识别你传入的自定义字段了。

3. 重新生成并同步类型文件

有时候CLI生成的文件可能没同步到前端,你可以试试:

  • 删除项目里的.better-auth文件夹(如果存在的话)
  • 重新运行npx @better-auth/cli generate
  • 重启前端的TypeScript服务(比如VSCode里按Ctrl+Shift+P,选择TypeScript: Restart TS Server)

4. 验证后端配置与Prisma Schema的一致性

你的后端additionalFields配置是没问题的,而且Prisma Schema也正确生成了自定义字段,所以核心问题大概率出在类型同步环节,按照前面的步骤操作应该能解决。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.08 09:13:05