账号与登录
调用前需完成 SDK 初始化。客户端获取的 Identity Token 交由应用服务端按 身份验证规范 验证。
登录
若要登录 Combo SDK 账号体系,请调用 login API。
注意:必须在主线程调用。
- Android
- iOS
fun login(activity: Activity, completionHandler: (LoginResult?, ComboSDKError?) -> Unit)
请求参数
| Properties | Type | Required | Description |
|---|---|---|---|
activity | Activity | true | 当前 Activity。 |
completionHandler | (LoginResult?, ComboSDKError?) -> Unit | true | 用于接收和处理结果的回调函数。 |
示例代码
Show Code
ComboSDK.login(this) { loginResult: LoginResult?, error: ComboSDKError? ->
if (error != null) {
Log.e("ComboSDK", """
Login Failed:
• Error: ${error.error}
• User Message: ${error.userMessage}
• Developer Message: ${error.developerMessage}
""".trimIndent())
return@login
}
loginResult?.let { result ->
Log.d("ComboSDK", """
Login Success:
• Combo ID: ${result.loginInfo.comboId}
• IDP: ${result.loginInfo.idp}
""".trimIndent())
}
}
static func login(controller: UIViewController, completionHandler: @escaping (LoginResult?, ComboSDKError?) -> Void)
请求参数
| Properties | Type | Required | Description |
|---|---|---|---|
controller | UIViewController | true | 当前视图控制器。 |
completionHandler | (LoginResult?, ComboSDKError?) -> Void | true | 用于接收和处理结果的回调函数。 |
示例代码
Show Code
[ComboSDK loginWithController:self completionHandler:^(LoginResult * _Nullable result, ComboSDKError * _Nullable error) {
if (error) {
NSLog(@"ComboSDK Login Failed:\n Error: %@\n User Message: %@\n Developer Message: %@",
error.error, error.userMessage, error.developerMessage);
return;
}
NSLog(@"Login Success:\n Combo ID: %@\n IDP: %@",
result.loginInfo.comboId,
result.loginInfo.idp);
}];
LoginResult
| Properties | Type | Description |
|---|---|---|
loginInfo | LoginInfo | 登录成功后的用户信息。 |
Error
| Error | Description |
|---|---|
USER_CANCELLED | 用户取消登录。 |
SERVER_ERROR | 服务器错误。 |
NETWORK_ERROR | 网络错误。 |
UNKNOWN_ERROR | 未知错误。 |
登出
用户主动登出当前账号时,应调用 logout API 清除本地缓存的用户信息。
- Android
- iOS
获取登录信息
如需获取当前登录账号的信息,例如 comboId 或用于校验实名信息的 identity token,可调用 getLoginInfo。
- Android
- iOS
返回值
实名认证
提示
如需启用世游通行证强制实名认证功能,请使用 Combo SDK for Apps v0.8.0 或更高版本,是否启用以发行配置为准。
实名认证为 App 可选能力;需要引导用户完成实名认证时,调用 authRealName API。
该 API 会弹出实名认证页面,引导用户输入实名信息。
- Android
- iOS
fun authRealName(activity: Activity, completionHandler: (AuthRealNameResult?, ComboSDKError?) -> Unit)
请求参数
| Properties | Type | Required | Description |
|---|---|---|---|
activity | Activity | true | 当前 Activity。 |
completionHandler | (AuthRealNameResult?, ComboSDKError?) -> Unit | true | 用于接收和处理结果的回调函数。 |
示例代码
Show Code
ComboSDK.authRealName(this) { result, error ->
if (error != null) {
Log.e("ComboSDK", "Real Name Auth Failed: ${error.error}")
return@authRealName
}
result?.let {
// 将 it.identityToken 发送到应用服务端验证,不输出到日志。
}
}
static func authRealName(controller: UIViewController, completionHandler: @escaping (AuthRealNameResult?, ComboSDKError?) -> Void)
请求参数
| Properties | Type | Required | Description |
|---|---|---|---|
controller | UIViewController | true | 当前视图控制器。 |
completionHandler | (AuthRealNameResult?, ComboSDKError?) -> Void | true | 用于接收和处理结果的回调函数。 |
示例代码
Show Code
[ComboSDK authRealNameWithController:self completionHandler:^(AuthRealNameResult * _Nullable result, ComboSDKError * _Nullable error) {
if (error) {
NSLog(@"ComboSDK Real Name Auth Failed: %@", error.error);
return;
}
// 将 result.identityToken 发送到应用服务端验证,不输出到日志。
}];
AuthRealNameResult
| Properties | Type | Description |
|---|---|---|
identityToken | String | 实名认证成功后返回的 JWT,包含用户年龄信息,可用于核验身份。 |
Error
| Error | Description |
|---|---|
USER_CANCELLED | 用户关闭实名认证页。 |
SERVER_ERROR | 服务器错误。 |
NETWORK_ERROR | 网络错误。 |
UNKNOWN_ERROR | 未知错误。 |
LoginInfo
| Properties | Type | Description |
|---|---|---|
comboId | String | Combo 分配的统一用户 ID。 |
identityToken | String | Combo 签发的身份 JWT。 |
idp | String | 提供用户认证与身份管理的外部服务。 |