-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Bug Description
注册用户后,使用邮箱密码登录时出现错误提示:
2026-03-09T09:47:20.241Z ERROR [Better Auth]: Credential account not found { email: 'zhuangjianguo@gmail.com' }
数据库数据示例
"sys_user": [
{
"id": "sys_user-1773049618228-1",
"createdAt": "2026-03-09T09:46:58.228Z",
"updatedAt": "2026-03-09T09:46:58.228Z",
"email": "zhuangjianguo@gmail.com",
"name": "建国庄",
"emailVerified": false,
"created_at": "2026-03-09T09:46:58.228Z",
"updated_at": "2026-03-09T09:46:58.228Z"
}
],
"sys_account": [
{
"id": "sys_account-1773049618228-1",
"createdAt": "2026-03-09T09:46:58.228Z",
"updatedAt": "2026-03-09T09:46:58.228Z",
"userId": "sys_user-1773049618228-1",
"providerId": "credential",
"accountId": "sys_user-1773049618228-1",
"password": "36ff5c34c9f42b59ca42bdfbb591848d:6c67ab1e18170a7671840499ba9d632d5e5e140d483c4bc2f4f34ac13493fd10108fe55fca441cc378dc2e5a2805d836048550c530e43933866a8abd7b6f9733",
"created_at": "2026-03-09T09:46:58.228Z",
"updated_at": "2026-03-09T09:46:58.228Z"
}
],现象与分析
- 注册和登录流程后,账号数据被正确存入数据库,且字段名为 camelCase(如 providerId, accountId)。
- ObjectStack 的 auth-account.object.ts schema 定义字段为 snake_case:provider_id, account_id。
- Better-auth 查询时使用 camelCase 字段,ObjectQL adapter 无字段名转换,因此 findOne/filter 查询不能正确匹配。
导致登录时无法查找正确的账号记录,出现 'Credential account not found' 错误。
期待行为
- ObjectQL adapter 在写入和查询时应实现 camelCase ↔ snake_case 字段名自动转换,保证数据读写一致。
- 登录流程可正确查找账号,不再出现 'Credential account not found'。
解决建议
- 在 objectql-adapter.ts 的 convertWhere 和相关读写函数中增加字段名转换实现。
- 可参考 lodash.camelCase/snakeCase 实现双向映射。
请确认修复后同步测试并更新相关 issue。
- 数据库结构与 adapter 字段名映射不一致
- 登录流程查找账号失败
- 修复 adapter,实现字段名一致性
相关代码:
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working