用途
本技能面向准备将 CometChat React Native 应用投入生产(发布)的开发者,帮助判断“这个应用是否可以安全发布”,并完成从开发态到生产态的安全加固。其核心目标是确保 Auth Key 不会随客户端二进制一起发布。
主要能力
- 用服务端签发的认证令牌替代 Auth Key 登录。
- 说明移动端打包产物中不存在真正的秘密:.env 文件、react-native-config、Constants.expoConfig、混淆、ProGuard 等最终都可在发布的应用中被读取,任何人都能解压 IPA 或 APK。
- 明确“把 Auth Key 藏在环境变量里”不是缓解措施,应当移除。
- 指出用户创建属于服务端职责:CometChat.createUser 需要 Auth Key,因此应在自有注册流程完成时由后端调用。
- 登出卫生:在 sign-out 时调用 CometChatUIKit.logout(),并先注销推送令牌,否则设备会继续收到上一个用户的通知。
- 发布前检查清单:测试 release 构建而非仅 debug;构建后在输出 bundle 中 grep Auth Key,必须不存在;在真实设备上验证通话与推送;同时检查 Android 与 iOS 两个平台。
使用方式
生产形态的登录流程为:由自有后端完成用户认证,然后为该 UID 签发短期 CometChat 认证令牌并返回;客户端调用 CometChatUIKit.login({ authToken }) 登录。客户端永远看不到 Auth Key。令牌是按用户、短期且可撤销的。UIKitSettings.authKey 仅用于 login({ uid }) 路径,生产构建不应携带它。
前置条件:除核心技能外,还需要一个你控制的、用于签发令牌的后端端点。
适用场景
- 上线前安全审查。
- 将 Auth Key 替换为认证令牌。
- 准备发布构建。
限制与注意事项
- 本技能假定已掌握 cometchat-react-native-core(安装、provider 链、init→login→render),不重复这些内容。
- 涉及企业认证模型(IdP/SSO 接入令牌流程、令牌过期/刷新与重新登录、RBAC 角色与群组 SBAC 范围、Auth Key 与 auth token 与 REST API Key 的区别)时,应加载 cometchat-security 技能。
- 常见陷阱包括:发布 Auth Key;在客户端创建用户;登出时未注销推送;仅从 debug 构建签字确认;只测试一个平台。
- 验证方式:确认所有发出的符号存在于 catalogs/rn-sdk-v4.json / rn-v5.json;npm run verify:fences:rn-v5 通过;在 release bundle 中 grep Auth Key 不存在;登出后确认设备不再收到该用户的通知。
暂未提供
关于具体收费、价格、平台支持范围、性能效果等事实,资料中暂未提供。