如何配置better-auth使接口返回自定义的user additionalField字段
解决betterAuth自定义role字段无法在API返回中获取的问题
针对你遇到的问题,结合给出的配置代码,整理几个排查和解决方向:
1. 修复配置代码的语法错误
你的配置末尾多了一个多余的逗号,这可能导致user配置块未被正确解析:
export const auth = betterAuth({ database: pool, emailAndPassword: { enabled: true, }, user: { additionalFields: { role: { type: "string", required: true, defaultValue: "customer", input: false, returned: true, }, }, }, // 删掉此处多余的逗号 });
修正后重启服务,再测试API返回结果。
2. 确认数据库中role字段的有效值
直接查询用户表(通常为users表),检查role字段是否已被正确填充为customer或你设置的其他值。部分场景下默认值可能因初始化问题未生效,空值可能不会被API返回。
3. 升级betterAuth到最新稳定版
部分旧版本的betterAuth在处理additionalFields的returned属性时存在兼容性问题,执行以下命令升级:
npm update better-auth # 或使用yarn yarn upgrade better-auth
4. 验证API端点与自定义处理逻辑
确保调用的是betterAuth官方提供的用户信息接口(比如默认的/api/auth/user);如果是自定义接口,检查是否在处理用户数据时手动过滤了role字段。
5. 清除缓存后重新测试
浏览器或客户端可能缓存了旧的用户数据,尝试用隐身模式访问页面,或清除缓存后重新调用API,确认是否能获取到包含role字段的最新数据。
内容的提问来源于stack exchange,提问作者Max Kabechani
相关产品推荐
相关产品推荐

