useAiWork开发者文档
核心业务

认证、账户与管理员权限

理解会话校验、账户隔离和管理员功能入口。

认证链路

项目使用 Better Auth。配置位于 src/features/auth/config.ts,浏览器客户端位于 src/features/auth/client.ts。服务端和业务 API 使用 src/features/auth/server.ts 直接读取请求会话;中间件保留 src/features/auth/request-session.ts 的 HTTP 读取方式。

认证 API 包装器位于 src/features/auth/api/route.ts,认证 Server Action 客户端位于 src/features/auth/actions/client.ts。注册赠送失败不阻止注册;删号前的订阅限制由 src/features/billing/account-deletion.ts 检查。

src/middleware.ts 控制登录后页面访问,但 API 仍须独立校验会话,不能只依赖页面入口的登录跳转。

账户隔离

数据库访问使用认证得到的 userId;浏览器模型配置和聊天历史也按账户使用独立存储键。切换账户时中止旧请求、重置旧会话,防止旧结果进入新账户界面。

管理员入口

后台包括用户管理、范本管理与 AI 额度配置。管理员角色是服务端权限边界,隐藏导航不等于授权检查。

本地调试管理员时,先创建账户,再通过 Wrangler 对本地数据库更新对应用户的角色。明确使用 --local;不要把生产资源作为本地调试目标。变更后退出并重新登录,让会话角色刷新。

扩展检查

  • 新 API 是否使用共享认证适配?
  • 读、写、删除是否都限定所有者?
  • 管理功能是否在服务端验证角色?
  • 登录、退出与切换账户是否清理旧请求状态?
  • 密码重置与邮件验证是否依赖已配置的站点地址和邮件服务?

相关测试见 src/test/auth、src/test/billing 和 src/test/header;API 架构见权限边界。

本页目录