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
|
```kotlin
|
||||||
// 登录(协程 suspend 函数)
|
// 登录(协程 suspend 函数)
|
||||||
// 只需要 userId + userSig,不需要 nickname / avatar / expiresAt
|
// 只需要 userId + userSig,不需要 nickname / avatar / 过期字段
|
||||||
lifecycleScope.launch {
|
lifecycleScope.launch {
|
||||||
XuqmSDK.login(
|
XuqmSDK.login(
|
||||||
userId = "user_001",
|
userId = "user_001",
|
||||||
@ -160,7 +160,7 @@ XuqmSDK.logout()
|
|||||||
// ↓ 自动触发所有模块清理
|
// ↓ 自动触发所有模块清理
|
||||||
```
|
```
|
||||||
|
|
||||||
> **注意**:`userSig` 一旦获取即永久有效,SDK 侧不做过期检查与续签。如需撤销权限,业务侧可在租户平台重置 `appSecret` 或拉黑账号。
|
> **注意**:`userSig` 由业务服务端签发,SDK 侧不做续签。若需更新登录态,请直接重新登录;如需撤销权限,可在租户平台重置 `appSecret` 或拉黑账号。
|
||||||
|
|
||||||
### 8. 版本更新
|
### 8. 版本更新
|
||||||
|
|
||||||
|
|||||||
@ -62,7 +62,7 @@ XuqmSDK.shared.initialize(config: config)
|
|||||||
import XuqmIM
|
import XuqmIM
|
||||||
|
|
||||||
// 使用 UserSig 登录(推荐生产环境)
|
// 使用 UserSig 登录(推荐生产环境)
|
||||||
// 只需要 userId + userSig,不需要 nickname / avatar / expiresAt
|
// 只需要 userId + userSig,不需要 nickname / avatar / 过期字段
|
||||||
try await XuqmSDK.shared.login(userId: "user_001", userSig: "your_user_sig_jwt")
|
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()
|
XuqmSDK.shared.logout()
|
||||||
```
|
```
|
||||||
|
|
||||||
> **注意**:`userSig` 一旦获取即永久有效,SDK 侧不做过期检测与续签。
|
> **注意**:`userSig` 由业务服务端签发,SDK 侧不做续签。若需更新登录态,请直接重新登录。
|
||||||
|
|
||||||
### 10. 检查更新
|
### 10. 检查更新
|
||||||
|
|
||||||
|
|||||||
@ -252,27 +252,22 @@ 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 派生,无需传入
|
// dbName 自动由 appKey + userId 派生,无需传入
|
||||||
|
|
||||||
// loginWithToken 废弃
|
|
||||||
- await ImSDK.loginWithToken(userId, token, dbName)
|
|
||||||
+ // 统一使用 login(userId, userSig)
|
|
||||||
```
|
```
|
||||||
|
|
||||||
UserSig 生成方式见[安全设计文档](../../design/02-security-design.md)。
|
UserSig 生成方式见 [安全设计文档](../../design/02-security-design.md)。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@ -284,7 +279,7 @@ UserSig 生成方式见[安全设计文档](../../design/02-security-design.md)
|
|||||||
**Q: 为什么不需要传平台地址参数?**
|
**Q: 为什么不需要传平台地址参数?**
|
||||||
XuqmGroup 是托管平台,服务地址统一管理,与腾讯云 IM 等平台的设计一致,开发者只需关心业务逻辑。
|
XuqmGroup 是托管平台,服务地址统一管理,与腾讯云 IM 等平台的设计一致,开发者只需关心业务逻辑。
|
||||||
|
|
||||||
**Q: UserSig 是什么?(v0.4.0)**
|
**Q: UserSig 是什么?**
|
||||||
UserSig 是您的业务服务端用 AppSecret 为用户签发的安全凭证,有效期可配置。AppSecret 绝不下发到客户端。
|
UserSig 是您的业务服务端用 AppSecret 为用户签发的安全凭证,有效期可配置。AppSecret 绝不下发到客户端。
|
||||||
|
|
||||||
**Q: 本地消息存储在哪里?**
|
**Q: 本地消息存储在哪里?**
|
||||||
|
|||||||
@ -47,10 +47,10 @@ POST /api/im/auth/login
|
|||||||
**响应**
|
**响应**
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{ "token": "eyJ...", "expiresAt": 9223372036854775807 }
|
{ "token": "eyJ..." }
|
||||||
```
|
```
|
||||||
|
|
||||||
> `expiresAt` 为极大值(约 100 年),表示 token 永久有效。SDK 侧不做过期检查。
|
> SDK 侧不做续签;登录态更新由业务侧重新登录完成。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@ -18,8 +18,6 @@ await XuqmSDK.initialize({ appKey })
|
|||||||
await XuqmSDK.login({
|
await XuqmSDK.login({
|
||||||
userId,
|
userId,
|
||||||
userSig,
|
userSig,
|
||||||
expiresAt,
|
|
||||||
refreshUserSig,
|
|
||||||
})</pre>
|
})</pre>
|
||||||
</el-card>
|
</el-card>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|||||||
正在加载...
在新工单中引用
屏蔽一个用户