Skip to main content
Documentation navigation

KAI AUTH / DEVELOPERS

Better Auth 1.7.1Updated Content: Simplified Chinese
View Markdown
On this page

测试与故障排查

使用明确的流程结果定位登录问题,避免把服务可访问误判为 OAuth 全链路正常。

使用 OAuth 测试应用

打开 /authtest,按页面配置的客户端发起完整授权。它应帮助检查 Discovery、回调、PKCE 兑换和令牌校验。测试页面的能力以实际界面为准;尚未执行的步骤不能记为通过。

选择与控制台登记一致的客户端类型,两种模式均使用 https://auth.kai.com/authtest/callback:

  • 公共 PKCE:对应「SPA 或原生公共应用」,只填写 Client ID,浏览器使用 PKCE 兑换令牌。
  • 私密 Web:对应「服务端 Web 应用」,填写 Client ID 和当前有效的客户端密钥。密钥只提交给本站服务端,由服务端执行密钥认证、PKCE 兑换、令牌校验和撤销;不会写入报告或浏览器存储。

私密 Web 测试的密钥及事务在服务端内存中等待授权最多五分钟,回调仅使用一次。流程结束或超时后会尝试撤销本次令牌,并在有时限的清理结束后丢弃密钥。请在同一浏览器完成流程并保持 Cookie 开启。服务重启或发布会结束待处理测试,此时应重新开始;不要重放旧回调。测试报告只短期保留,刷新后可能需要重新测试。

如果回调通过,但兑换阶段提示「客户端认证被拒绝」,优先核对所选类型和当前密钥。PKCE 不替代私密 Web 客户端的密钥认证。

测试客户端必须和其他应用一样登记 redirect URI、scope 与资源权限。不能绕过 consent、关闭 PKCE 或使用生产账号密码作为自动化脚本配置。

常见错误

现象 优先检查
invalid_target resource 是否准确、已注册启用,客户端是否获准;纯登录可以省略 resource
invalid_scope 请求 scope 是否被客户端允许,且与资源 scope 有交集
invalid_client client ID、类型、secret 和 token endpoint 认证方式是否一致
回调被拒绝 redirect URI 的协议、主机、端口和路径是否与登记一致
invalid_grant 授权码是否重复使用或过期,PKCE verifier 是否匹配,授权是否已撤销
JWT audience 不匹配 ID token 检查 client ID,业务 access token 检查该 API 的 resource identifier
解析组织角色失败 organization_role 允许 null,access_version 是 number
/mobile/callback 返回 400 旧端点需要有效 OAuth 响应,裸访问不是登录流程
Device Code 长期等待 用户是否核对并批准,是否遵守 interval 和 slow_down

不要在错误处理里自动删除 resource 后重试业务 API 请求,这会改变授权目标。若仅测试身份登录,应从开始就明确选择不含 resource 的流程。

验收清单

  1. 正确用户、客户端、回调与 scope 完成登录,ID token 和 UserInfo 的 sub 一致。
  2. 错误 state、nonce、issuer、audience 或 PKCE 被拒绝;重复授权码不可使用。
  3. 未登记回调、未授权资源、越权 scope 和被禁用应用不能取得访问权。
  4. 请求并获准 offline_access 后刷新成功,轮换与撤销行为符合客户端实现。
  5. 退出回跳、Auth 会话结束与接入方本地会话失效分别验证。

对线上测试只保留时间、环境、步骤状态和脱敏错误。不要保存完整 code、token、Cookie 或真实个人信息。本文不宣称任何生产测试已经执行。