Appearance
登录相关
WARNING
在游戏登录界面,调用登录接口时, 建议游戏先判断当前是否有初始化完成。 如果未初始化完成,可以再次调用初始化接口。
登录
当玩家进入游戏登录界面、 或玩家手动点击【进入游戏】按钮并且此时玩家是未登录状态时, 游戏层可以调用登录接口。
js
// 文件头部先从usdk.har中导入U8SDK等对象
import { U8Error, U8SDK, U8LoginResult } from '@ohos/u8sdk';
...
U8SDK.getInstance().login(getContext()).then((loginResult:U8LoginResult)=>{
//登录成功回调
}).catch((err:U8Error)=>{
// 登录失败回调,err = {code: 1, msg: 'err msg'}
hilog.error(0x0000, 'U8SDK', 'u8sdk login failed:%{public}s', JSON.stringify(err));
});处理登录回调
当渠道SDK登录成功或失败时, 聚合SDK会通过login接口中传入的回调函数,通知给游戏层:
js
.then((loginResult:U8LoginResult)=>{
//登录成功回调
})U8LoginResult中是U8聚合SDK返回的当前玩家的账号, 其中包含了当前玩家的账号ID等信息。 loginResult结构如下:
| 参数名称 | 参数类型 | 参数说明 |
|---|---|---|
| userID | long | 玩家唯一ID,游戏层可以用该字段绑定游戏账号或角色 |
| sdkUserID | String | 渠道平台返回的玩家唯一ID,不同渠道之间可能不唯一 |
| username | String | 聚合SDK生成的用户名,无意义 |
| sdkUsername | String | 渠道平台那边玩家的用户名,可能为空 |
| token | String | 此次登录的token,游戏客户端传给游戏服务器,游戏服务器登录认证需要使用 |
| timestamp | String | 当前时间戳 |
| newAccount | Number | 当前账号是否是新账号(首次登录), 1:新用户;0:老用户 |
| sign | String | 当前签名,游戏服务器如果使用本地校验签名,可以使用该字段 |
| needUnBind | Boolean | 是否需要游戏层展示【解绑】按钮入口,true:需要;false:不需要 |
切换账号
如果游戏中,有【切换账号】功能, 可以在玩家点击【切换账号】按钮时,调用下面的接口。
js
// 文件头部先从usdk.har中导入U8SDK等对象
import { U8Error, U8SDK, U8LoginResult } from '@ohos/u8sdk';
...
U8SDK.getInstance().switchLogin(getContext()).then((loginResult:U8LoginResult)=>{
//登录成功回调, loginResult对象和login接口一致
}).catch((err:U8Error)=>{
// 切换账号失败回调,err = {code: 1, msg: 'err msg'}
hilog.error(0x0000, 'U8SDK', 'u8sdk login failed:%{public}s', JSON.stringify(err));
});解绑账号
华为鸿蒙审核要求, 在游戏中,当玩家选择了账号绑定进入游戏时, 游戏中需要有【解绑】按钮入口。
在游戏层调用login或switchLogin接口成功时, U8聚合SDK返回的U8LoginResult中有一个属性:needUnBind,当该字段为true时,需要游戏层展示【解绑】入口;为false时,需要游戏层隐藏【解绑】入口。
在玩家点击【解绑】按钮时,调用下面的接口:
js
// 文件头部先从usdk.har中导入U8SDK等对象
import { U8Error, U8SDK, U8LoginResult } from '@ohos/u8sdk';
...
U8SDK.getInstance().unbind(getContext()).then((ret:boolean)=>{
// 解绑成功, 引导玩家返回到游戏登录界面,让其重新登录
}).catch((err:U8Error)=>{
hilog.error(0x0000, 'testTag', 'u8sdk switch login failed:%{public}s', JSON.stringify(err))
})服务端登录验证
客户端登录成功后, 会返回U8LoginResult对象给游戏层。 游戏层收到U8LoginResult后, 可以将里面userID、 token等数据, 传给游戏服务器。
游戏服务器通过调用服务端->登录认证API,验证token的合法性。
验证通过后, 才能让玩家进入游戏。