Appearance
登录相关
WARNING
在游戏登录界面,调用登录接口时, 建议游戏先判断当前是否有初始化完成。 如果未初始化完成,可以再次调用初始化接口。
登录
当玩家进入游戏登录界面、 或玩家手动点击【进入游戏】按钮并且此时玩家是未登录状态时, 游戏层可以调用登录接口。 请在UI主线程中调用该接口。
java
U8Platform.getInstance().login(MainActivity.this);处理登录通知事件
当渠道SDK登录成功或失败时, 聚合SDK会通过初始化接口中传入的U8InitListener->onLoginResult函数,通知给游戏层:
java
@Override
public void onLoginResult(int code, UToken data) {
switch(code){
case U8Code.CODE_LOGIN_SUCCESS:
Toast.makeText(MainActivity.this, "登录成功", Toast.LENGTH_LONG).show();
break;
case U8Code.CODE_LOGIN_FAIL:
case U8Code.CODE_LOGIN_AUTH_FAILED:
Log.d("U8SDK", "login failed from sdk.");
Toast.makeText(MainActivity.this, "登录失败", Toast.LENGTH_LONG).show();
break;
}
}当code为U8Code.CODE_LOGIN_SUCCESS时, 会返回UToken对象, 其中包含了当前玩家的账号ID等信息。 UToken结构参考如下:
| 参数名称 | 参数类型 | 参数说明 |
|---|---|---|
| userID | long | 玩家唯一ID,游戏层可以用该字段绑定游戏账号或角色 |
| sdkUserID | String | 渠道平台返回的玩家唯一ID,不同渠道之间可能不唯一 |
| username | String | 聚合SDK生成的用户名,无意义 |
| sdkUsername | String | 渠道平台那边玩家的用户名,可能为空 |
| token | String | 此次登录的token,游戏客户端传给游戏服务器,游戏服务器登录认证需要使用 |
| timestamp | String | 当前时间戳 |
| newAccount | boolean | 当前账号是否是新账号(首次登录) |
| sign | String | 当前签名,游戏服务器如果使用本地校验签名,可以使用该字段 |
登出
如果游戏中,有【登出】功能, 可以在玩家点击【登出】按钮时,调用下面的logout接口。
java
U8Platform.getInstance().logout(MainActivity.this);切换账号
如果游戏的登录界面上面,有【切换账号】功能, 可以在玩家点击【切换账号】按钮时,调用下面接口。
java
U8Platform.getInstance().switchAccount();上面接口等同于:
java
U8Platform.getInstance().logout(MainActivity.this);
U8Platform.getInstance().login(MainActivity.this);服务端登录验证
客户端登录成功后, 会返回UToken对象给游戏层。 游戏层收到UToken后, 可以将里面userID、 token等数据, 传给游戏服务器。
游戏服务器通过调用服务端->登录认证API,验证token的合法性。
验证通过后, 才能让玩家进入游戏。