30 KiB
30 KiB
IM 第一至十一章后续增强项
更新日期:2026-08-17 范围:第一章登录注册与安全、第二章消息首页/导航/系统通知、第三章单聊关系、第四章群消息与 @、第五章通讯录/好友/黑名单、第六章群聊创建/资料/治理、第七章文件/收藏/聊天记录检索、第八章实时语音与视频通话、第九章企业工作台与组织架构、第十章个人设置与客户端能力、第十一章反诈安全/举报/反馈 用途:记录当前已完成基线之外的增强项,后续统一排期处理。 状态说明:2026-08-17 已完成的 P0/P1 已移入各章“当前已完成基线”,不再作为后续待办。完整修复记录见
IM-需求实现情况审核报告.md。
1. 第一章:登录、注册与安全
1.1 当前已完成基线
- 企业码解析、租户状态校验和公开租户配置返回。
- 注册、登录前验证码发送与验证。
- 注册验证码 Token 消费,避免绕过验证码直接注册。
- 忘记密码挑战验证与重置确认。
- Token 绑定
auth_version,密码重置后旧 Token 失效。 - 登录后敏感操作二次验证挑战。
- 实名认证状态查询与提交,证件信息脱敏/保护存储。
- 独立密码设置与验证,包含弱密码规则和失败锁定。
- 登录后 bootstrap 返回实名、安全与菜单基础能力。
- 产品 HTTP 已统一校验 API Key、Schema 和 Request ID。
- 登录态写接口已接入租户库幂等记录,支持请求摘要冲突检测和首次响应重放。
- 风险确认已生成可重试安全事件和用户系统通知。
1.2 后续增强项
| 优先级 | 增强项 | 说明 | 建议验收点 |
|---|---|---|---|
| P0 | 验证码真实发送通道 | 当前验证码生成、校验和限频链路已具备,短信/邮件供应商发送仍需接入真实服务。 | 验证码可通过供应商下发;供应商失败有可观测错误和重试策略。 |
| P0 | 验证码限频维度补强 | 需要按租户、手机号、IP、设备、场景组合限频,并落库或接入 Redis。 | 高频请求返回 VERIFICATION_RATE_LIMITED,不同场景互不误伤。 |
| P1 | 安全事件通知覆盖扩展 | 风险确认已接入统一事件和系统通知;密码重置、实名审核、独立密码变更、新设备登录仍需补齐。 | 操作成功后 /v1/im/system-notifications 能看到对应事件且重试不重复入箱。 |
| P1 | 实名审核工作流 | 当前支持提交和状态查询,后续需要后台审核、驳回原因、通过后状态变更。 | 审核通过后 realname.status=verified;驳回可再次提交。 |
| P1 | 独立密码用途扩展 | 当前按 purpose 存储,可继续接入青少年模式关闭、敏感设置修改等业务入口。 |
不同 purpose 相互隔离;错误次数和锁定互不串扰。 |
| P1 | 设备与会话管理 | 需要登录设备列表、主动踢出设备、Token 刷新/撤销审计。 | 修改密码或踢设备后对应 Token 立即不可用。 |
| P1 | API Key 轮换策略 | 当前 API Key 校验兼容现有逻辑,尚未实现最低可接受序号或撤销表。 | 旧序号 Key 可按配置禁用,新 Key 不影响正常客户端。 |
| P2 | 风控与反诈策略接入 | 第一章安全动作后续应接入风险评分、反诈弹窗和二次确认策略。 | 高风险动作触发二次验证或反诈提示,低风险动作直通。 |
2. 第二章:消息首页、全局导航与系统通知
2.1 当前已完成基线
GET /v1/im/bootstrap返回首页菜单、能力开关、权限和message_policy。GET /v1/im/search/conversations支持会话搜索和基础分页。- WebSocket 发消息支持
Head["x-im-client-mid"]幂等,重连重发不重复落库/广播。 - 消息 Header 已按产品协议校验
x-im-schema、x-im-type、x-im-client-mid,并兼容旧type。 - 普通用户禁止发布
sysTopic,且禁止伪造system/system_event。 GET /v1/im/topics/{topic}/messages/{seq}/receipts返回群消息送达/已读基础列表。POST /v1/im/topics/{topic}/messages/{seq}/recall支持版本校验、权限校验和时限内撤回。POST /v1/im/topics/{topic}/messages/{seq}/revisions支持文本消息编辑、版本递增和修订记录。GET /v1/im/system-notifications和POST /v1/im/system-notifications/{id}/read。- 消息编辑/撤回已在事务内写入通用 Outbox,并向 Topic 在线成员派发可去重事件。
- 编辑/撤回已接入全局 HTTP 幂等和响应重放。
- 好友、群、会议和安全模块已可信生产系统通知。
2.2 后续增强项
| 优先级 | 增强项 | 说明 | 建议验收点 |
|---|---|---|---|
| P0 | 消息变更查询占位策略 | 已撤回消息在普通拉取中应返回撤回占位,而不是仅靠客户端本地事件。 | 新设备登录拉历史时能看到撤回占位和版本。 |
| P1 | 群回执隐私和角色策略 | 当前返回基础 read/recv 列表,后续需按租户策略、群规模、角色决定是否展示具体成员。 | 普通成员/管理员在不同策略下看到不同粒度回执。 |
| P1 | 群回执 cursor 精确分页 | 当前 cursor 是基础位置分页,后续可升级为稳定游标,避免成员变动造成跳页。 | 成员新增/删除时分页不重复、不漏主要数据。 |
| P1 | message_policy 租户配置化 |
当前 recall/edit 窗口和菜单能力是固定值,后续需要来自租户配置。 | 不同租户可配置不同撤回/编辑时限和菜单能力。 |
| P1 | 系统通知 action 白名单 | action.type 和参数需要统一注册、校验和版本化。 |
非白名单 action 写入失败;客户端只收到可识别跳转。 |
| P1 | 会话搜索排序与类型过滤 | 当前按现有订阅数据过滤,后续需支持会话类型、置顶、免打扰、最近活跃排序等。 | 搜索结果与消息首页排序、筛选规则一致。 |
| P2 | 离线重连恢复编排测试 | 需要端到端覆盖 hi -> token login -> sub me -> 恢复 Topic -> get data。 |
断网重连后未丢消息、未重复消息、未错乱回执。 |
| P2 | 消息 Header schema 版本演进 | 当前做基础格式/枚举校验,后续需要按 x-im-schema 版本维护兼容矩阵。 |
老客户端消息可兼容,新客户端非法字段被拒绝。 |
3. 第三章:单聊关系、权限与会话上下文
3.1 当前已完成基线
- 单聊会话上下文接口返回双方关系、发送能力、对端公开资料和 P2P Topic。
- P2P 发送路径接入好友关系校验,非好友、拉黑状态下禁止直接发送。
- 好友申请、通过、拒绝、删除好友与单聊关系状态联动。
- 拉黑/解除拉黑后关系上下文即时反映
blocked_by_me、blocked_by_peer等状态。 - 会话侧可根据
can_send锁定输入框,并引导重新添加好友。 - 好友申请、通过/拒绝、删除、拉黑/解除和备注已生成稳定关系事件,相关对端通知可去重。
- 好友申请/审批关键路径已在业务事务内写入通知和 Outbox,其他可重复关系写由全局 HTTP 幂等保证可补写。
- 非好友资料查询已执行
profile_visibility。
3.2 后续增强项
| 优先级 | 增强项 | 说明 | 建议验收点 |
|---|---|---|---|
| P0 | P2P 策略统一入口 | 当前核心路径已校验好友/黑名单,后续需要把发消息、通话、名片、文件、历史查看统一收敛到同一策略服务。 | 任一 P2P 业务入口对同一关系状态返回一致权限。 |
| P1 | Pending 会话体验增强 | 待处理好友申请对应的单聊页应携带申请摘要、来源、过期时间和快速处理入口。 | 进入 pending 会话可直接通过/拒绝,不需要跳转新朋友页。 |
| P1 | 黑名单历史消息策略 | 当前发送/通话阻断已具备,后续需明确拉黑后历史消息、资料、文件和已读回执可见范围。 | 被拉黑人在不同策略下看到一致的历史与资料裁剪结果。 |
| P1 | 资料策略继续扩展 | 好友/非好友可见性已执行,企业字段级可见性和青少年模式仍需纳入同一策略。 | 企业受限字段与青少年用户无法从其他入口绕过策略。 |
| P1 | 好友关系审计 | 删除、拉黑、解除拉黑、申请处理等敏感关系操作写审计日志。 | 后台可按租户、操作者、目标用户查询操作流水。 |
| P2 | 关系状态迁移测试矩阵 | 需要覆盖 none、pending_inbound、pending_outbound、friend、blocked_by_me、blocked_by_peer 的全迁移。 | 任意状态迁移后 DB、HTTP 上下文、WS 权限一致。 |
4. 第四章:群消息、群成员与 @ 能力
4.1 当前已完成基线
- 群成员列表接口支持基础分页、搜索和
mentionable过滤。 - 返回成员角色、公开资料、ACL 和是否可被 @。
- 群 @ 消息头部字段校验,支持
mentioned_user_ids、mention_all等基础结构。 - 群 @ 权限接入成员 ACL,管理员/群主才具备 @ 全体能力。
- 群消息读取链路保留 @ 元数据,客户端可据此展示提醒。
- 群昵称、角色、禁言、成员和公告等群业务变更已写入群 Outbox,并生成在线事件与系统通知。
4.2 后续增强项
| 优先级 | 增强项 | 说明 | 建议验收点 |
|---|---|---|---|
| P0 | @ 实时通知与离线 Push | 当前消息元数据已落库,后续需要对被 @ 成员生成高优先级提醒和离线 Push。 | 被 @ 用户在在线、离线、多端场景均收到一次提醒。 |
| P0 | @ 全体频控 | @ 全体需要按租户、群、角色、时间窗口限频,避免刷屏。 | 超限返回稳定错误码,管理员可配置限额。 |
| P0 | 群成员稳定游标分页 | 当前成员列表以基础 cursor 分页,后续应使用稳定游标避免成员变动跳页。 | 成员入群/退群时翻页不重复、不漏主要数据。 |
| P1 | 群成员资料隐私裁剪 | 群内非好友主页需要按群关系、好友关系、隐私设置裁剪资料字段。 | 同一成员从群内和好友主页进入时字段符合策略差异。 |
| P1 | @ 候选排序优化 | @ 面板候选应支持拼音首字母、最近互动、角色优先和本地缓存协同。 | 大群搜索响应稳定,候选排序符合产品规则。 |
| P1 | 群治理策略配置化 | 成员私聊、成员邀请、全员禁言、上传权限等应统一由群治理配置控制。 | 不同群可配置不同治理能力,HTTP 与 WS 权限一致。 |
| P2 | 大群性能压测 | 需要覆盖 500、2000、10000 成员下的成员列表、@ 搜索和发送性能。 | 达到目标延迟和资源占用阈值。 |
5. 第五章:通讯录、好友关系与黑名单
5.1 当前已完成基线
- 好友列表支持查询、首字母、分页,返回备注、头像、显示名来源和会话 Topic。
- 新朋友列表、好友申请、通过、拒绝链路已具备。
- 用户搜索支持账号、精准账号和手机号类型,返回公开资料、关系和
action。 - 添加好友二维码支持短期签名 Token 生成与解析。
- 好友个人主页返回关系、资料和操作能力。
- 群内非好友个人主页返回群角色、关系、资料和操作能力。
- 好友备注更新、删除好友、拉黑/解除拉黑已具备。
- 黑名单列表和批量移出黑名单已具备。
- 好友/黑名单写操作已统一接入 HTTP 幂等、关系事件和必要的对端系统通知。
- 用户搜索和好友申请已执行
add_me_methods,手机号搜索不会返回禁止该方式的非好友。 - 好友个人主页已执行
profile_visibility。
5.2 后续增强项
| 优先级 | 增强项 | 说明 | 建议验收点 |
|---|---|---|---|
| P1 | 用户搜索租户策略扩展 | 个人添加方式已执行,后续还需增加租户级 allow_user_search、通讯录授权和存在性防探测策略。 |
租户关闭搜索或未授权通讯录时,客户端无法绕过且不泄露用户存在性。 |
| P0 | 二维码吊销与一次性策略 | 当前二维码是短期签名 Token,后续如需主动失效、刷新覆盖、扫码审计,需要落库或接入 Redis。 | 用户刷新二维码后旧码按策略失效;后台可查询扫码记录。 |
| P1 | 好友资料字段精细裁剪 | 基础 everyone/friends/nobody 可见性已执行,后续需按群内关系、黑名单、实名/青少年等规则裁剪到字段级。 |
不同入口返回字段符合隐私矩阵。 |
| P1 | 通讯录排序与拼音索引 | 当前支持基础 initial,后续需维护昵称/备注拼音、特殊字符分组和本地增量同步。 | 好友列表与客户端通讯录排序一致,中文首字母稳定。 |
| P1 | 黑名单占位资料 | 资料删除、离职或不可见时,黑名单列表仍需返回可解除的受控占位用户。 | 黑名单中失效用户可展示占位并成功移出。 |
| P1 | 好友申请防骚扰 | 需要按目标用户、申请人、IP、设备、来源和群来源限频,并支持拒收策略。 | 高频申请被限制;群来源申请校验双方仍在群内。 |
| P1 | 关系操作审计 | 关键关系系统通知已接入,添加、删除、拉黑、解除和二维码解析仍需独立审计流水。 | 后台可按租户、操作者和目标用户追溯。 |
| P2 | 批量接口部分失败语义增强 | 批量移出黑名单目前返回逐项结果,后续需要统一批量接口错误码、重试建议和幂等结果缓存。 | 部分失败时客户端能只重试失败项。 |
6. 第六章:群聊创建、资料维护与成员治理
6.1 当前已完成基线
- 群列表、创建群、群资料查询与更新、群头像和群简介保存接口已具备。
- 群设置、个人群设置、退出群、群昵称接口已具备。
- 群二维码生成与扫码解析支持
join_group场景。 - 群邀请、进群申请、申请列表、同意/拒绝、群 summary 申请计数已具备。
- 群公告最新查询、发布/更新、详情和已读接口已具备。
- 群治理配置
GET/PATCH /governance已具备。 - 管理员候选、管理员上限、批量添加管理员、删除管理员和群主转让接口已具备。
- 禁言候选、批量禁言、禁言列表和解除禁言接口已具备。
- 12 张
im_group_*业务表已纳入 MySQL 租户库自动初始化,独立租户库模式不保存tenant_id。 - 群邀请、入群申请/审批、成员变更、角色变更、群主转让和退群已收口到 MySQL 事务。
- 群写操作已使用
im_group_idempotency和im_group_events_outbox,提交后通过 Hub 派发,失败保留 pending 重试。 - WebSocket 群消息发布已校验成员禁言和全员禁言,支持过期恢复及管理员豁免。
- 群公告已使用独立表并记录成员已读时间。
6.2 后续增强项
| 优先级 | 增强项 | 说明 | 建议验收点 |
|---|---|---|---|
| P1 | 进群申请隐私与限频 | 申请入口需要按群治理、租户策略、用户状态、来源、IP/设备限频。 | 高频申请被限制;普通成员不可看到敏感申请人信息。 |
| P1 | 管理员/群主角色层级策略 | 管理员互相操作、管理员禁言、群主转让二次认证等需要完整策略矩阵。 | 群主、管理员、普通成员在每个治理动作上的权限稳定一致。 |
| P1 | 群文件索引 | 6.27-6.28 需要独立群文件表,绑定上传文件、群成员权限、下载状态和删除权限。 | 群文件列表可搜索/分页,退群后不可下载旧 URL。 |
| P1 | 群解散与二维码吊销 | 群解散、二维码撤销、邀请失效需要状态联动和权限回收。 | 解散后 Topic、二维码、邀请、文件新增权限全部失效。 |
| P2 | 大群性能与稳定分页 | 成员、申请、公告、禁言、文件列表都需要稳定游标和大群压测。 | 大群场景下分页不重复不漏,接口延迟达标。 |
7. 第七章:文件下载、收藏管理与聊天记录检索
7.1 当前已完成基线
- 收藏创建、列表、详情和删除接口已具备,支持文本、文件、语音、链接等类型。
- 收藏批量创建和基础分享前的数据结构已具备。
- Topic 消息关键词搜索、文件/图片/视频等媒体类型检索接口已具备。
- 消息上下文定位接口可围绕指定 seq 返回前后消息。
- 文件访问已接入用户与 Topic 权限校验,下载前可判断资源可见性。
- 收藏等登录态 HTTP 写接口已接入全局幂等响应重放。
7.2 后续增强项
| 优先级 | 增强项 | 说明 | 建议验收点 |
|---|---|---|---|
| P1 | 收藏业务去重策略 | 同一 HTTP 请求的超时重试已由全局幂等保证;使用不同幂等键重复收藏同一消息、文件或链接时,仍需业务唯一性策略。 | 重复点击收藏不会产生重复记录,并返回已有收藏 ID。 |
| P0 | 收藏分享权限二次校验 | 收藏文件或消息分享给好友/群时,需要重新校验接收方是否可访问原资源或生成受控副本。 | 无权限接收方不能通过收藏分享拿到原会话附件。 |
| P0 | 文件下载短时签名 URL | 当前权限判断已具备,后续应生成短时下载 URL,并记录下载审计。 | URL 过期不可访问;退群/拉黑后旧 URL 失效或受策略限制。 |
| P0 | 文件安全扫描与 MIME 校验 | 上传后的文件需要扩展名、MIME、内容嗅探、病毒扫描和图片/视频解码安全检查。 | 高风险文件不可下载或转发,客户端收到稳定错误码。 |
| P1 | 收藏分类与全文索引 | 收藏列表需要按类型、来源、时间、关键词、发送人等维度检索。 | 大量收藏下搜索响应稳定,类型筛选结果准确。 |
| P1 | 聊天记录稳定游标 | 消息搜索和媒体列表需要稳定游标,避免新消息插入导致翻页重复或漏项。 | 搜索期间新增消息不影响当前翻页结果。 |
| P1 | 历史消息权限快照策略 | 用户退群、删除好友、拉黑后,历史消息和附件的可见范围需要统一规则。 | 各入口对同一历史资源权限判断一致。 |
| P1 | 下载状态与断点续传 | 大文件下载需要断点续传、失败重试、进度状态和下载完成事件。 | 网络中断后可续传;下载完成状态可跨端同步或按端隔离。 |
| P2 | 聊天记录高亮与命中片段 | 搜索结果可返回命中摘要、高亮范围和消息类型摘要。 | 客户端无需二次解析即可展示命中片段。 |
| P2 | 收藏导出与批量管理 | 后续可支持收藏批量删除、批量转发、导出和云端容量统计。 | 批量操作有部分失败语义和可重试结果。 |
8. 第八章:实时语音与视频通话
8.1 当前已完成基线
- 通话 invite、accept、offer、answer、ice-candidate、hang-up 等事件沿用 Tinode call event 链路。
- 通话记录表
im_call_records已具备,记录call_id、Topic、seq、主叫/被叫、类型、状态、时长和结束原因。 - 通话记录创建、接听和结束状态更新已接入 store/adapter。
- 通话记录查询接口已具备:全局
GET /v1/im/calls与 Topic 内GET /v1/im/topics/{topic}/calls。 - 查询结果返回对端用户、方向、通话类型、状态、时长和关键时间点,客户端可先完成通话记录页对接。
8.2 后续增强项
| 优先级 | 增强项 | 说明 | 建议验收点 |
|---|---|---|---|
| P0 | 跨设备抢答状态机 | 同一账号多端收到来电时,需要一个设备接听后自动取消其他端待接状态。 | A 手机接听后,A 平板和 Web 端立即变为已在其他设备接听。 |
| P0 | 通话状态强一致与幂等 | invite、accept、hang-up 等事件需要幂等键或事件序号,避免乱序/重复导致状态回退。 | 重复 hang-up 不改变最终状态;迟到 accept 不会覆盖已结束通话。 |
| P0 | 通话事件 Outbox 与通知 | 来电、未接、挂断、忙线等需要可信事件和 Push,DB 状态与通知通过 Outbox 衔接。 | 离线用户收到一次来电/未接提醒,失败可补偿。 |
| P0 | TURN/STUN 配置与媒体准入 | 服务端应按租户/区域返回可用 ICE 配置,并限制未授权用户创建媒体会话。 | 客户端拉取到有效 TURN;无权限通话被服务端拒绝。 |
| P1 | 结束原因标准化 | 需要统一 missed、declined、busy、timeout、network_error 等原因和客户端展示文案。 |
不同端同一结束原因展示一致,统计口径一致。 |
| P1 | 通话质量指标 | 需要采集建立耗时、ICE 成功率、丢包、抖动、断连等指标。 | 后台可按租户和版本查看通话质量趋势。 |
| P1 | 群通话/会议房间拆分 | 群音视频不宜复用 P2P call,需要会议房间、参与人状态和 SFU 接入。 | 群通话有独立 room_id、成员列表和退出/重进状态。 |
| P1 | 通话权限统一策略 | 通话入口应复用 P2P/群关系策略、黑名单、禁言、青少年模式和企业策略。 | 被拉黑、非好友或受限制用户无法发起通话。 |
| P2 | 通话记录聚合与清理 | 通话记录可按会话、日期、未接分类聚合,并支持保留周期清理。 | 记录列表分页稳定,超过保留期按策略清理。 |
9. 第九章:企业工作台与办公协同
9.1 当前已完成基线
- 工作台接口
GET /v1/im/workbench已具备,返回模块、布局版本和企业功能开关。 - 工作台模块表
im_workbench_apps已具备,默认包含组织架构、会议通知、日报、月报、总经理信箱入口。 - 服务端对工作台 route 做内部白名单过滤,避免客户端执行任意服务端 URL。
- 组织架构部门表
im_org_departments和成员表im_org_members已具备。 - 部门列表
GET /v1/im/organization/departments、部门成员GET /v1/im/organization/departments/{id}/members、组织搜索GET /v1/im/organization/search已具备。 - 会议通知
POST/GET/PATCH/CANCEL/REMIND/MY-RESPONSE已具备基线,包含参与人和版本冲突控制。 - 日报/月报草稿、提交、详情、列表、统计与提醒基线已具备。
- 总经理信箱配置与提交接口已具备,包含匿名策略、文案版本和幂等键。
- 工作台
tenant_code已返回租户注册表的公开编码,不再暴露内部 ID。 - 会议创建、变更、取消、提醒和参会回应已生成在线事件与系统通知,关键变更在事务内写 Outbox。
9.2 后续增强项
| 优先级 | 增强项 | 说明 | 建议验收点 |
|---|---|---|---|
| P0 | 工作台权限与功能开关配置化 | 当前模块基线可返回,后续需要按租户、部门、角色、后台配置动态裁剪。 | 不同用户登录同一租户看到不同授权模块。 |
| P0 | 工作台未读角标事件 | 文档要求 workbench.badge.updated,后续需要模块未读聚合和实时增量事件。 |
会议、日报、信箱未读变化后工作台角标实时更新。 |
| P0 | 组织数据后台维护链路 | 当前前台读接口和表已具备,后续需要后台导入、增删改部门、调整成员和离职状态。 | 后台修改组织后前台接口版本变化,客户端可刷新。 |
| P0 | 组织权限与可见字段裁剪 | 成员手机号、邮箱、职位等字段需要按组织角色、隐私和企业策略裁剪。 | 普通员工和管理员看到的成员字段不同且不可绕过。 |
| P1 | 组织搜索索引优化 | 当前基础 LIKE 搜索可用,后续需要拼音、工号、手机号脱敏匹配和稳定排序。 | 大组织下搜索延迟达标,结果排序符合组织规则。 |
| P1 | 组织版本与增量同步 | 部门和成员返回版本,后续需要全局组织版本、变更事件和客户端增量刷新。 | 切换部门或人员变更后客户端无需全量重拉。 |
| P1 | 会议离线 Push 联调 | 会议在线事件、系统通知和 Outbox 已完成,后续需使用真实 Firebase 凭据和移动端验证离线通知。 | 参与人离线时收到一次提醒,点击可跳转至正确会议。 |
| P1 | 日报/月报后台统计口径 | 当前基础统计可用,后续需要按部门、周期、迟交、补交、未读等维度扩展。 | 管理员看板与业务口径一致。 |
| P1 | 总经理信箱后台流转 | 当前前台配置/提交已具备,后续需要后台处理、回复、转派、归档和通知。 | 信件全生命周期可追踪,匿名身份受保护。 |
| P1 | 办公协同审计 | 组织查询、会议变更、报告查看、信箱提交等敏感动作需要审计。 | 后台可按租户、用户、对象查询办公操作流水。 |
| P2 | 办公模块统一附件策略 | 会议、日报、月报、信箱附件需要复用第七章文件 ACL、用途和病毒扫描。 | 附件上传、查看、下载权限与业务状态一致。 |
10. 个人设置与客户端能力
10.1 当前已完成基线
- 个人资料
GET/PATCH /v1/im/me/profile、个人页GET /v1/im/me已具备。 - 隐私设置
GET/PATCH /v1/im/me/privacy已具备,支持版本冲突控制。 - 最新版本检查
GET /v1/im/app/releases/latest已具备,支持未登录按租户解析调用。 - 青年模式查询、开启、关闭接口已具备,复用敏感操作
action_token和独立密码校验链路。 - 设备 Push Token 覆盖写入
PUT /v1/im/devices/{device_id}/push-token已具备。 - FCM 已优先使用产品
im_device_push_tokens数据源,并支持通过环境变量注入 Firebase 凭据。 - 用户搜索/加好友、个人资料、消息回执及 Tinode P2P 最后在线输出已执行对应隐私设置。
10.2 后续增强项
| 优先级 | 增强项 | 说明 | 建议验收点 |
|---|---|---|---|
| P0 | 个人资料变更实时同步 | 资料、头像、隐私变更后需要向多端推送 profile.updated、privacy.updated。 |
同账号多端无需重登即可刷新设置。 |
| P0 | 精准登出与会话撤销 | 现有 token 主要靠 auth_version 批量失效,后续需要 access/refresh/session 表支持当前设备登出和指定 session 删除。 |
当前设备退出不影响其他设备;删除指定 session 后该设备 token 立即失效。 |
| P0 | 青年模式策略配置化 | 当前返回默认 restrictions,后续需要后台按租户配置可用时段、内容限制、消费保护等规则。 | 不同租户返回不同限制策略且能热更新。 |
| P0 | Push Token 生命周期 | 当前可覆盖写入,后续需要 token 失效回收、设备解绑、平台厂商错误码处理。 | 推送失败后自动禁用无效 token,重新登录可恢复。 |
| P1 | 版本灰度发布 | 当前按 platform/channel 查最新版本,后续需要按租户、用户、灰度比例、最低版本强制升级。 | 灰度用户收到新版本,非灰度用户保持稳定版本。 |
| P1 | 隐私策略入口扩展 | 产品主要搜索、资料、回执和最后在线入口已执行隐私设置,组织架构字段、文件、通话和青少年模式仍需纳入统一策略。 | 非授权用户无法通过任一业务入口绕过隐私配置。 |
| P2 | 客户端能力上报 | 后续增加设备能力、通知权限、厂商通道状态和前台活跃状态上报。 | 后台可定位推送不可达和版本兼容问题。 |
11. 反诈安全、举报与意见反馈
11.1 当前已完成基线
- URL 安全检查
POST /v1/im/security/urls/check已接入风控 challenge 创建。 - 风控确认
POST /v1/im/security/risk-challenges/{id}/confirm已具备,continue返回短时risk_action_token。 - 举报原因
GET /v1/im/reports/abuse/reasons已具备,默认覆盖用户、群、消息目标。 - 举报提交
POST /v1/im/reports/abuse已具备,支持幂等键、证据文件 ID、目标基础可见性校验和审核快照。 - 意见反馈配置
GET /v1/im/feedback/config、提交POST /v1/im/feedback已具备,支持附件规则、诊断授权和幂等键。 - 风险确认结果已生成稳定
security.risk.*事件和用户可见系统通知。
11.2 后续增强项
| 优先级 | 增强项 | 说明 | 建议验收点 |
|---|---|---|---|
| P0 | 风控策略引擎 | 当前 URL 检查仅基础规则,后续需要按动作、关系、内容、设备、频率和租户策略综合判定。 | 高风险发消息、加好友、打开链接等动作统一返回风控 challenge。 |
| P0 | 风控 token 消费接入业务接口 | 当前确认可签发 risk_action_token,后续需要原业务接口校验并单次消费该 token。 |
二次确认后只允许重试原动作一次,重复使用返回 Token 已消费。 |
| P0 | 举报目标完整权限校验 | 当前做基础可见性校验,后续需要结合用户侧删除、撤回、退群、黑名单、文件 ACL 和审核状态。 | 无权限目标无法提交举报,也不泄露目标存在性。 |
| P0 | 审核后台流转 | 举报和反馈当前仅 received,后续需要后台分派、处理、关闭、回复和通知。 | 处理状态可追踪,举报人按策略收到处理结果。 |
| P1 | 证据文件安全与保留期 | 证据文件需要 abuse_evidence 专用 ACL、病毒扫描、不可转发和保留期策略。 |
证据只能审核链路访问,过期按政策清理。 |
| P1 | 主动反诈风险提示 | 风险确认通知已由服务端可信生产;低风险主动提示、通知文案策略和 Push 优先级仍需扩展。 | 普通用户无法伪造反诈弹窗,客户端只信任系统事件。 |
| P1 | 举报合并与限频 | 重复举报需要合并、返回原受理号或限频错误,避免刷单。 | 短时间重复举报同一目标不会生成大量工单。 |
| P2 | 反馈诊断包脱敏 | 诊断包需统一脱敏、大小限制、客户端日志授权和服务端下载审计。 | 未同意时没有诊断包,同意后包内不含明文 token/手机号。 |
12. 统一处理建议
- 优先剩余 P0:验证码真实发送与多维限频、消息撤回历史占位、P2P 文件/通话策略统一、@通知与频控、文件安全与短时授权、通话强状态机、工作台/组织权限和风控 token 业务消费。
- 再做剩余 P1:租户策略配置、实名审核、设备/会话管理、字段级隐私矩阵、关系审计、群文件与解散状态机、通话质量指标、报表/信箱后台流转和真实 FCM 离线联调。
- 最后做 P2:端到端重连测试、schema 版本演进、大群压测、批量接口体验优化、收藏导出、通话记录聚合和办公模块附件统一策略。
- 每个增强项落地后同步更新本文档、
IM-系统设计文档.md、IM-前后端对接文档.md和IM-需求实现情况审核报告.md,避免已完成项继续出现在待办清单。