docs(deploy): 添加部署文档并更新SDK API设计规范
- 新增完整的XuqmGroup部署文档,包含服务器配置、Docker Compose部署策略 - 更新SDK API重设计规范至V2.0,统一各端SDK初始化和登录接口 - 添加安全设计规范文档,涵盖密码安全、AppSecret验证等内容 - 新增离线推送架构设计文档,定义厂商推送集成方案 - 重构SDK登录流程,统一使用userId + userSig鉴权模式 - 移除dbName等外部配置参数,实现零感知平台地址配置 - 完善部署架构图和配置示例文件
这个提交包含在:
父节点
27d298a622
当前提交
e5552044ae
@ -52,7 +52,7 @@ XuqmSDK.initialize(
|
||||
|
||||
```kotlin
|
||||
// 登录(协程 suspend 函数)
|
||||
// 只需要 userId + userSig,不需要 nickname / avatar / expiresAt
|
||||
// 只需要 userId + userSig,不需要 nickname / avatar / 过期字段
|
||||
lifecycleScope.launch {
|
||||
XuqmSDK.login(
|
||||
userId = "user_001",
|
||||
@ -160,7 +160,7 @@ XuqmSDK.logout()
|
||||
// ↓ 自动触发所有模块清理
|
||||
```
|
||||
|
||||
> **注意**:`userSig` 一旦获取即永久有效,SDK 侧不做过期检查与续签。如需撤销权限,业务侧可在租户平台重置 `appSecret` 或拉黑账号。
|
||||
> **注意**:`userSig` 由业务服务端签发,SDK 侧不做续签。若需更新登录态,请直接重新登录;如需撤销权限,可在租户平台重置 `appSecret` 或拉黑账号。
|
||||
|
||||
### 8. 版本更新
|
||||
|
||||
|
||||
@ -62,7 +62,7 @@ XuqmSDK.shared.initialize(config: config)
|
||||
import XuqmIM
|
||||
|
||||
// 使用 UserSig 登录(推荐生产环境)
|
||||
// 只需要 userId + userSig,不需要 nickname / avatar / expiresAt
|
||||
// 只需要 userId + userSig,不需要 nickname / avatar / 过期字段
|
||||
try await XuqmSDK.shared.login(userId: "user_001", userSig: "your_user_sig_jwt")
|
||||
|
||||
// 设置事件代理
|
||||
@ -203,7 +203,7 @@ try await XuqmSDK.shared.login(userId: "user_001", userSig: userSig)
|
||||
XuqmSDK.shared.logout()
|
||||
```
|
||||
|
||||
> **注意**:`userSig` 一旦获取即永久有效,SDK 侧不做过期检测与续签。
|
||||
> **注意**:`userSig` 由业务服务端签发,SDK 侧不做续签。若需更新登录态,请直接重新登录。
|
||||
|
||||
### 10. 检查更新
|
||||
|
||||
|
||||
@ -252,24 +252,19 @@ interface ImGroup {
|
||||
|
||||
---
|
||||
|
||||
## 迁移指南(v0.3.x → v0.4.0)
|
||||
## 当前接入
|
||||
|
||||
v0.4.0 预计改动(**Breaking Changes**):
|
||||
当前接入方式如下:
|
||||
|
||||
```diff
|
||||
```ts
|
||||
// 初始化
|
||||
- await XuqmSDK.initialize({ appKey: 'xxx', /* 平台地址参数已移除 */ })
|
||||
+ await XuqmSDK.initialize({ appKey: 'xxx' }) // 平台地址内置,无需传入
|
||||
await XuqmSDK.initialize({ appKey: 'xxx' }) // 平台地址内置,无需传入
|
||||
|
||||
// IM 登录(UserSig 由业务服务端签发)
|
||||
const userSig = await yourServer.getUserSig(userId)
|
||||
await ImSDK.login(userId, userSig)
|
||||
|
||||
// IM 登录(改为 UserSig 鉴权,密码不再传入 SDK)
|
||||
- await ImSDK.login(userId, nickname, avatar, dbName)
|
||||
+ const userSig = await yourServer.getUserSig(userId) // 您的服务端签发
|
||||
+ await ImSDK.login(userId, userSig, { nickname, avatar })
|
||||
// dbName 自动由 appKey + userId 派生,无需传入
|
||||
|
||||
// loginWithToken 废弃
|
||||
- await ImSDK.loginWithToken(userId, token, dbName)
|
||||
+ // 统一使用 login(userId, userSig)
|
||||
```
|
||||
|
||||
UserSig 生成方式见 [安全设计文档](../../design/02-security-design.md)。
|
||||
@ -284,7 +279,7 @@ UserSig 生成方式见[安全设计文档](../../design/02-security-design.md)
|
||||
**Q: 为什么不需要传平台地址参数?**
|
||||
XuqmGroup 是托管平台,服务地址统一管理,与腾讯云 IM 等平台的设计一致,开发者只需关心业务逻辑。
|
||||
|
||||
**Q: UserSig 是什么?(v0.4.0)**
|
||||
**Q: UserSig 是什么?**
|
||||
UserSig 是您的业务服务端用 AppSecret 为用户签发的安全凭证,有效期可配置。AppSecret 绝不下发到客户端。
|
||||
|
||||
**Q: 本地消息存储在哪里?**
|
||||
|
||||
@ -47,10 +47,10 @@ POST /api/im/auth/login
|
||||
**响应**
|
||||
|
||||
```json
|
||||
{ "token": "eyJ...", "expiresAt": 9223372036854775807 }
|
||||
{ "token": "eyJ..." }
|
||||
```
|
||||
|
||||
> `expiresAt` 为极大值(约 100 年),表示 token 永久有效。SDK 侧不做过期检查。
|
||||
> SDK 侧不做续签;登录态更新由业务侧重新登录完成。
|
||||
|
||||
---
|
||||
|
||||
|
||||
@ -18,8 +18,6 @@ await XuqmSDK.initialize({ appKey })
|
||||
await XuqmSDK.login({
|
||||
userId,
|
||||
userSig,
|
||||
expiresAt,
|
||||
refreshUserSig,
|
||||
})</pre>
|
||||
</el-card>
|
||||
</el-col>
|
||||
|
||||
正在加载...
在新工单中引用
屏蔽一个用户