帮你快速理解、总结文档立即下载

LoginStore

最近更新时间:2026-10-23 14:57:33
本文档已由 AI 辅助审校
我的收藏

简介

LoginStore 提供了一套完整的登录管理 API,包括用户登录、登出、设置个人信息等功能。 通过该类,可以管理用户的登录状态和用户资料。
重要:
使用 LoginStore.shared 单例对象访问 LoginStore 实例。
说明:
登录状态更新通过 loginState 发布者传递。订阅它以接收登录状态的实时更新。

功能特性

用户登录:支持使用 SDK 应用 ID、用户 ID 和用户签名进行登录。
用户登出:支持用户登出操作。
个人信息设置:支持设置用户昵称、头像、性别等个人资料。

可订阅数据

LoginState 的字段描述如下:
属性名
类型
描述
loginStatus
StateFlow<LoginStatus>
登录状态。
loginUserInfo
StateFlow<UserProfile?>
登录用户信息。

API 列表

函数名
描述
单例对象。
登录事件监听器。
登录事件监听器。
login
登录。
logout
登出。
设置个人信息。
设置离线推送证书 ID。

获取实例

LoginStore.shared

单例对象。

观察事件

addLoginListener

添加登录监听器。
abstract fun addLoginListener(listener: LoginListener)
建议在调用 login 之前添加监听器,以便能够及时接收登录相关事件。
版本信息
从3.5版本开始支持。
参数说明
参数名
类型
描述
listener
登录监听器。

removeLoginListener

移除登录监听器。
abstract fun removeLoginListener(listener: LoginListener)
版本信息
从3.5版本开始支持。
参数说明
参数名
类型
描述
listener
登录监听器。

登录操作

login

登录。
abstract fun login(
context: Context,
sdkAppID: Int,
userID: String,
userSig: String,
completion: CompletionHandler? = null
)
版本信息
从3.5版本开始支持。
参数说明
参数名
类型
描述
context
Context
上下文。
sdkAppID
Int
SDK 应用 ID。从 控制台 获取,通常是以 140 或 160 开头的 10 位整数。
userID
String
用户 ID。建议限制长度为32字节,只允许包含大小写英文字母(a-zA-Z)、数字(0-9)及下划线和连词符。
userSig
String
用户签名。userSig 生成请参考 用户鉴权。
completion
完成回调。

logout

登出。
abstract fun logout(completion: CompletionHandler? = null)
版本信息
从3.5版本开始支持。
参数说明
参数名
类型
描述
completion
完成回调。

setSelfInfo

设置个人信息。
abstract fun setSelfInfo(
userProfile: UserProfile,
completion: CompletionHandler? = null
)
版本信息
从3.5版本开始支持。
参数说明
参数名
类型
描述
userProfile
用户资料。
completion
完成回调。

推送配置

setCertificateID

设置离线推送证书 ID。
abstract fun setCertificateID(config: Map<String, String>)
以 Map<String, String> 形式传入各厂商的推送证书配置,SDK 内部会根据当前设备品牌自动选通道、获取 token 并上报到 IM 后端。 调用时机不限,建议在 Application.onCreate 中调用。如果调用时尚未登录,SDK 会暂存配置并在登录成功后自动启动推送注册。 证书 ID 从 IM 控制台(https://console.cloud.tencent.com/im) 上传推送证书后获取。Map 的 key 使用下表中约定的字符串;未识别的 key 会被忽略,对应 value 缺失时该通道不会被启用。
支持的 key
Key
说明
huaweiCertificateId
华为推送证书 ID
xiaomiCertificateId
小米推送证书 ID
xiaomiAppId
小米开放平台 AppId
xiaomiAppKey
小米开放平台 AppKey
oppoCertificateId
OPPO 推送证书 ID
oppoAppKey
OPPO 开放平台 AppKey
oppoAppSecret
OPPO 开放平台 AppSecret
vivoCertificateId
vivo 推送证书 ID
honorCertificateId
荣耀推送证书 ID
meizuCertificateId
魅族推送证书 ID
meizuAppId
魅族开放平台 AppId
meizuAppKey
魅族开放平台 AppKey
fcmCertificateId
FCM (Firebase) 推送证书 ID
版本信息
从3.5版本开始支持。
参数说明
参数名
类型
描述
config
Map<String, String>
各厂商推送证书配置。Key 为约定的字符串(详见上方「支持的 key」),未识别的 key 会被忽略,对应 value 缺失时该通道不会被启用。

数据结构

LoginStatus

登录状态。
枚举值
说明
UNLOGIN
未登录。
LOGINED
已登录。

AllowType

好友验证方式。
枚举值
值
说明
ALLOW_ANY
0
允许任何人。
NEED_CONFIRM
1
需要验证。
DENY_ANY
2
拒绝任何人。

Gender

性别。
枚举值
值
说明
UNKNOWN
0
未知。
MALE
1
男性。
FEMALE
2
女性。

LoginListener

登录事件。
方法
方法名
说明
onKickedOffline
当前用户被踢下线。
onLoginExpired
登录票据过期。

UserProfile

用户资料。
属性
类型
说明
userID
String
用户 ID。
nickname
String?
昵称。
avatarURL
String?
头像 URL。
selfSignature
String?
个性签名。
gender
Gender?
性别。
role
Int?
角色,该字段无业务限制,您可以放心使用任意合法的整数值。
level
Int?
等级,该字段无业务限制,您可以放心使用任意合法的整数值。
birthday
Long?
生日,该字段无业务限制,您可以放心使用任意合法的整数值。
allowType
好友验证方式。
customInfo
Map<String, ByteArray>?
自定义信息。

LoginState

登录状态。
属性
类型
说明
loginStatus
StateFlow<LoginStatus>
登录状态。
loginUserInfo
StateFlow<UserProfile?>
登录用户信息。