SuperAPI AI 工具集

cometchat-production

安全与审计

查看项目

更新于 10-15 20:14

技能介绍

用途:该技能用于把 CometChat 集成从开发模式加固到生产环境,涵盖两块核心内容——基于令牌的鉴权(用服务端生成令牌替代客户端 authKey)与服务端用户管理 CRUD(注册时创建、资料变更时更新、注销时删除用户)。

主要能力:说明为何生产环境必须使用服务端令牌:开发模式的 CometChatUIKit.login(uid) 会通过 UIKitSettingsBuilder.setAuthKey() 把 authKey 打包进浏览器端 JS,任何人可在 DevTools 中取得该密钥并以任意用户身份登录。生产流程为四步:客户端先用自有鉴权系统登录;服务端校验身份后调用 CometChat REST API 的 POST https://{APP_ID}.api-{REGION}.cometchat.io/v3/users/{uid}/auth_tokens 并为该用户签发令牌;客户端收到令牌后调用 CometChatUIKit.loginWithAuthToken(token) 建立会话,authKey 不再进入浏览器。

使用方式:服务端请求需带 appId 与 apiKey 两个请求头。文档区分 Auth Key(authOnly 范围,可创建用户与签发令牌,但不能更新/删除用户,仅限开发)与 REST API Key(fullAccess 范围,服务端专用,支持令牌生成、完整用户 CRUD 与发消息)。因此做用户更新/删除的接口必须使用 COMETCHAT_REST_API_KEY。环境变量建议客户端用带前缀的 VITE_COMETCHAT_APP_ID、VITE_COMETCHAT_REGION,服务端用 COMETCHAT_APP_ID、COMETCHAT_REGION、COMETCHAT_REST_API_KEY。资料给出了 Next.js App Router、Next.js Pages Router、React Router v7(framework 模式)、Express/Hono 独立服务、Astro 的令牌端点实现示例。cometchat-core 的 CometChatProvider 同时支持 authKey(开发)与 authToken(生产)属性,并附有 useCometChatToken 钩子示例用于获取令牌。

限制:资料指出示例中的 uid 取自请求体仅作起点,生产中必须从已鉴权会话推导;代码中的鉴权检查为 TODO 占位。CLI 的 add-user-mgmt / production-auth 脚手架目前把服务端变量命名为 COMETCHAT_AUTH_KEY,做完整 CRUD 时需填入或改名为 fullAccess 的 REST API Key。资料提醒在使用符号前应对照已安装的包或源码核验。官方文档:https://www.cometchat.com/docs/fundamentals/user-auth;Docs MCP:claude mcp add --transport http cometchat-docs https://www.cometchat.com/docs/mcp。