Appearance
登录相关
WARNING
在游戏登录界面,调用登录接口时, 建议游戏先判断当前是否有初始化完成。 如果未初始化完成,可以再次调用初始化接口。
登录
当玩家进入游戏登录界面、 或玩家手动点击【进入游戏】按钮并且此时玩家是未登录状态时, 游戏层可以调用登录接口。 请在UI主线程中调用该接口。
objc
[[U8SDK sharedInstance] login];处理登录通知事件
当渠道SDK登录成功或失败时, 聚合SDK会通过初始化时设置的U8SDKDelegate->OnUserLogin,通知给游戏层:
objc
// 登录成功时, 回调这里
-(void) OnUserLogin:(NSDictionary*)param
{
[self SendCallback:"OnLoginSuc" withParams:param];
}
// 登录失败时,回调这里
-(void) OnEventWithCode:(int)code msg:(NSString*)msg
{
switch (code){
case U8_CODE_LOGIN_FAILED:
// 渠道SDK登录失败
break;
}
}登录成功时,返回的param中是当前用户信息, 其中包含了当前玩家的账号ID等信息。 param结构参考如下:
| 参数名称 | 参数类型 | 参数说明 |
|---|---|---|
| userID | long | 玩家唯一ID,游戏层可以用该字段绑定游戏账号或角色 |
| sdkUserID | String | 渠道平台返回的玩家唯一ID,不同渠道之间可能不唯一 |
| username | String | 聚合SDK生成的用户名,无意义 |
| sdkUsername | String | 渠道平台那边玩家的用户名,可能为空 |
| token | String | 此次登录的token,游戏客户端传给游戏服务器,游戏服务器登录认证需要使用 |
| timestamp | String | 当前时间戳 |
| newAccount | int | 当前账号是否是新账号 1:新账号;0:老账号 |
| sign | String | 当前签名,游戏服务器如果使用本地校验签名,可以使用该字段 |
登出
如果游戏中,有【登出】功能, 可以在玩家点击【登出】按钮时,调用下面的logout接口。
objc
[[U8SDK sharedInstance] logout];切换账号
如果游戏的登录界面上面,有【切换账号】功能, 可以在玩家点击【切换账号】按钮时,调用下面接口。
objc
[[U8SDK sharedInstance] logout];
[[U8SDK sharedInstance] login];服务端登录验证
客户端登录成功后, 会返回user对象给游戏层。 游戏层收到user对象后, 可以将里面userID、 token等数据, 传给游戏服务器。
游戏服务器通过调用服务端->登录认证API,验证token的合法性。
验证通过后, 才能让玩家进入游戏。