SuperAPI AI 工具集

cometchat-react-native-production

安全与审计

查看项目

更新于 10-21 20:28

技能介绍

用途

本技能面向准备将 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 不存在;登出后确认设备不再收到该用户的通知。

暂未提供

关于具体收费、价格、平台支持范围、性能效果等事实,资料中暂未提供。