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

LoginStore

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

简介

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

功能特性

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

可订阅数据

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

API 列表

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

获取实例

shared

单例对象。
public static let shared: LoginStore = LoginStoreImpl()
版本信息
从3.5版本开始支持。

观察事件

loginEventPublisher

登录事件发布者。
数据结构: LoginEvent

登录操作

login

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

logout

登出。
public func logout(completion: CompletionClosure?) {}
版本信息
从3.5版本开始支持。
参数说明
参数名
类型
描述
completion
完成回调。

setSelfInfo

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

推送配置

setCertificateID

设置离线推送证书 ID。
public func setCertificateID(apnsCertificateID: Int = 0, voipCertificateID: Int = 0) {}
设置 APNs 和 VoIP 推送证书 ID,SDK 内部会自动完成推送注册、token 获取和上报。 必须在 login(sdkAppID:userID:userSig:completion:)之前调用。 证书 ID 从 IM 控制台 上传推送证书后获取。
版本信息
从3.5版本开始支持。
参数说明
参数名
类型
描述
apnsCertificateID
Int
APNs 推送证书 ID。传 0 表示不启用 APNs 推送。
voipCertificateID
Int
VoIP 推送证书 ID。传 0 表示不启用 VoIP 推送。默认值为 0。

数据结构

LoginStatus

登录状态。
枚举值
说明
unlogin
未登录。
logined
已登录。

AllowType

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

Gender

性别。
枚举值
值
说明
unknown
0
未知。
male
1
男性。
female
2
女性。

LoginEvent

登录事件。
枚举值
说明
kickedOffline
当前用户被踢下线。
loginExpired
登录票据过期。

UserProfile

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

LoginState

登录状态。
属性
类型
说明
loginStatus
登录状态。
loginUserInfo
登录用户信息。