84 行
2.2 KiB
Markdown
84 行
2.2 KiB
Markdown
|
|
# 会话与隐私授权
|
||
|
|
|
||
|
|
使用扩展模块的应用只有一个公共会话入口。Common 独立模式不需要登录。
|
||
|
|
|
||
|
|
## 隐私授权
|
||
|
|
|
||
|
|
SDK 不展示隐私弹窗,也不会自行推断用户是否同意。宿主在自己的隐私声明获得授权后调用:
|
||
|
|
|
||
|
|
```ts
|
||
|
|
import { XuqmSDK } from '@xuqm/rn-common'
|
||
|
|
|
||
|
|
await XuqmSDK.setPrivacyConsent(true)
|
||
|
|
```
|
||
|
|
|
||
|
|
用户撤回授权时:
|
||
|
|
|
||
|
|
```ts
|
||
|
|
await XuqmSDK.setPrivacyConsent(false)
|
||
|
|
```
|
||
|
|
|
||
|
|
撤回后 BugCollect 会停止采集并清理尚未发送的数据。宿主业务是否继续运行由宿主决定。
|
||
|
|
|
||
|
|
## 登录
|
||
|
|
|
||
|
|
宿主业务登录成功后调用一次:
|
||
|
|
|
||
|
|
```ts
|
||
|
|
await XuqmSDK.login({
|
||
|
|
userId: 'user-001',
|
||
|
|
accessToken: 'host-access-token',
|
||
|
|
name: '张医生',
|
||
|
|
phone: '13800000000',
|
||
|
|
avatar: 'https://example.com/avatar.png',
|
||
|
|
// 只有使用 IM 时才需要:
|
||
|
|
userSig: 'im-user-signature',
|
||
|
|
})
|
||
|
|
```
|
||
|
|
|
||
|
|
字段说明:
|
||
|
|
|
||
|
|
| 字段 | 必填 | 用途 |
|
||
|
|
| --- | --- | --- |
|
||
|
|
| `userId` | 是 | XuqmGroup 扩展服务共享的用户标识 |
|
||
|
|
| `accessToken` | 按业务 | 公共 HTTP Bearer Token |
|
||
|
|
| `userSig` | 仅 IM | IM 登录凭证 |
|
||
|
|
| `name/email/phone/avatar` | 否 | 扩展模块需要时使用的用户资料 |
|
||
|
|
|
||
|
|
`accessToken` 和 `userSig` 是两种不同凭证,不要互相替代。
|
||
|
|
|
||
|
|
## 登出
|
||
|
|
|
||
|
|
```ts
|
||
|
|
await XuqmSDK.logout()
|
||
|
|
```
|
||
|
|
|
||
|
|
登出会通知所有已安装扩展包清理当前会话。业务页面不需要分别调用 Update、Push 或 IM 的
|
||
|
|
登录/登出方法。
|
||
|
|
|
||
|
|
## 获取当前状态
|
||
|
|
|
||
|
|
```ts
|
||
|
|
const userId = XuqmSDK.getUserId()
|
||
|
|
const userInfo = XuqmSDK.getUserInfo()
|
||
|
|
const initState = XuqmSDK.getInitializationState()
|
||
|
|
```
|
||
|
|
|
||
|
|
这些方法适合应用入口、调试页或基础设施层读取。业务组件应从宿主自己的用户领域 Store
|
||
|
|
展示资料,不要把 SDK 当作宿主用户资料数据库。
|
||
|
|
|
||
|
|
## 登录门禁与宿主行为
|
||
|
|
|
||
|
|
租户平台可以把 Update 等服务配置为“登录后检查”。未登录时 SDK 会返回
|
||
|
|
`LOGIN_REQUIRED`,宿主应当跳过更新提示并继续正常使用应用:
|
||
|
|
|
||
|
|
```ts
|
||
|
|
const result = await UpdateSDK.checkAppUpdate()
|
||
|
|
|
||
|
|
if (result.status === 'LOGIN_REQUIRED') {
|
||
|
|
return // 不弹错误、不阻断启动
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
平台临时不可用、服务关闭或登录要求发生变化,都不能替代宿主自身的登录和启动流程。
|