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