背景
framework#2874 P2② 登录面审计发现:/api/v1/auth/config 广告的 8 个登录面 flag 中,passkeys 和 magicLink 在 objectui 只存在于类型声明(packages/auth/src/types.ts L119-120),没有任何组件消费——既无 passkey 登录/注册 UI,也无 magic-link 请求/消费流程。
这属于 #2874 主类的镜像:主类是「UI 宣传后端没有的能力」,这里是「后端广告了 UI 没有的能力」——flag 打开后部署者会以为登录页出现对应入口,实际什么都不会发生。
建议(二选一)
- 建 UI:LoginForm 按
features.passkeys === true 显示 passkey 登录入口(better-auth passkey 插件已有客户端 API);按 features.magicLink === true 显示「邮箱链接登录」入口;或
- 摘牌/文档化:短期内不做 UI 就在文档标注这两个 flag 为 reserved,并在 framework 侧评估是否暂停广告(避免部署者误判)。
备注
twoFactor 不在本 issue 范围:2FA 挑战由服务端 remediation 驱动(ADR-0069),flag 不被 LoginForm 读取是刻意设计。
- framework 侧注册表:
packages/spec/src/kernel/public-auth-features.ts(passkeys / magicLink 条目的 exempt.reason 指向本 issue)
- 审计出处:framework#2874(P2② 登录面核对)
背景
framework#2874 P2② 登录面审计发现:
/api/v1/auth/config广告的 8 个登录面 flag 中,passkeys和magicLink在 objectui 只存在于类型声明(packages/auth/src/types.tsL119-120),没有任何组件消费——既无 passkey 登录/注册 UI,也无 magic-link 请求/消费流程。这属于 #2874 主类的镜像:主类是「UI 宣传后端没有的能力」,这里是「后端广告了 UI 没有的能力」——flag 打开后部署者会以为登录页出现对应入口,实际什么都不会发生。
建议(二选一)
features.passkeys === true显示 passkey 登录入口(better-auth passkey 插件已有客户端 API);按features.magicLink === true显示「邮箱链接登录」入口;或备注
twoFactor不在本 issue 范围:2FA 挑战由服务端 remediation 驱动(ADR-0069),flag 不被 LoginForm 读取是刻意设计。packages/spec/src/kernel/public-auth-features.ts(passkeys/magicLink条目的 exempt.reason 指向本 issue)