SonicJS 部署到 Cloudflare Workers 后,可能会遇到用户无法登录、权限不足或随意注册等问题。以下是在生产环境中必须处理的认证配置。
关闭公开注册:在 app config 中设置
disableSignUp: true,管理员通过 /admin/users/new 创建用户,确保同时写入 auth_user 和 auth_account。密码存储不一致:Better Auth 读取
auth_account,部分流程只更新 auth_user.password_hash。使用 npm run set-password:prod 脚本同步两个存储,并通过环境变量 ADMIN_EMAIL 和 ADMIN_PASSWORD 种子初始管理员。RBAC 权限问题:登录后有权限提示,通常是因为
auth_user.role 字段未映射到 RBAC 角色。使用 npm run promote-user:prod 提升用户权限,默认 editor 带 portal:access,admin 则全权限。症状排查表:任何人可注册→关闭 signup;凭证未找到→运行 set-password;登录后无权限→运行 promote-user;种子失败→检查 wrangler.toml 和 D1 绑定;部署后认证异常→重新设置 BETTER_AUTH_SECRET 和 JWT_SECRET。
使用
patch-package 修复框架 bug,但应优先升级上游版本。最后,确保私有 CMS 的强化清单:禁用公开注册、种子 admin、创建用户写入双表、RBAC 含 portal:access、密码重设脚本同步双存储、生产密钥通过
wrangler secret put 设置、公开集合显式指定 access.public。#开发者 #工具 #SonicJS #Cloudflare #BetterAuth #RBAC #Workers #CICD
@DevToolboxHub