品牌管理台 · M1 换皮 Demo
改完点「保存并发布」即可生效。右侧是终端客户会看到的界面(注入层品牌,与 Electron 客户端内的页面品牌同一套逻辑)。当前已发布版本:…
DEMO_ADMIN_TOKEN 时必须在这里填 ——
否则下面所有写操作(改品牌 / 配代理线路 / 签发客户端令牌)都会被服务端拒绝(403)。
令牌只保存在本机浏览器里,不随任何数据外发。
客户端账号与代理线路
每个 IM 账号走各自独立的出口 —— 降低多人共用同一出口 IP 带来的账号间关联度。 代理写在这里,随配置一起下发到客户端(带 ed25519 签名:改一笔就能把客户流量劫走,所以必须签名,客户端验不过就拒绝应用)。
客户端令牌与凭据
客户端上报消息靠一枚长期令牌识别身份(客户端不能自报"我是谁")。 这里签发 / 吊销这枚令牌,并生成凭据模板。 没有凭据文件,客户端一条消息都上报不上来 —— 而且界面不会报错,只是安静地什么都不发。
域名与 SSL 证书
这个平台用哪些域名对外在这里管,证书由 Let's Encrypt 自动签发(http-01 挑战,零外部依赖)。 签完立刻生效(不用重启服务),到期前 30 天会标需要续签。
server-lite/keys/domains/,不进交付包)→ 换机要重新签发。
红线控制
两条硬性红线在这里真正生效(不是只写在文档里): ① 品牌可强制下线 —— 违规 / 失联 / 纠纷时,平台必须能让某个租户立刻停用; ② 准入是发额度的前置闸门 —— 渠道商没完成「实名 + 用途声明 + 承诺书」,额度发不出去。
渠道商准入
知识库与术语
AI 接管的每条回复都基于知识检索 —— 你们的报价规则(MOQ / 单价 / 交期 / 认证要求) 写在这里,AI 接管才会用你们的规则,而不是平台通用话术。 只写通用结论("定制包装 MOQ 1000 pcs"),不要写客户名和订单号 —— 那些归会话存档管。
术语表(客服 hover 看到的解释)
品牌字段
保存即写入 brand_config 新版本并用服务端 Ed25519 私钥签名;客户端启动时验签后才应用。没有这一步,客户端会继续沿用缓存里的旧品牌(粘性降级),不会露馅。
已发布配置的签名
- version
- —
- alg
- ed25519
- signature
- —
终端客户预览
客户端窗口标题、任务栏图标、托盘图标、应用菜单、登录页与关于页,全部由同一份 brand_config 驱动。
Electron 客户端
客户端启动时:拉 /api/client/bootstrap → 验签 → 应用品牌到窗口/图标/托盘/菜单 → 渲染层应用页面内品牌。之后每 60 秒心跳一次,服务端版本更高时提示「重启以应用新品牌」。
失败回退:拉取失败时使用本地缓存的上一份品牌配置,绝不回落到平台默认品牌——否则渠道商的终端客户会在某次网络抖动后突然看到我们的名字。