登录接入
客户端登录接入
在完成客户端接入的步骤五
步骤六:添加回调处理
- Unity
- Unreal Engine
-
需添加 AuthResultObserver 和 LIEventObserver 回调来处理登录组件事件;
-
回调数据结构为 INTLAuthResult,其中包含登录信息和账号信息,例如 OpenID、账号绑定信息和账号注销状态。
// Add callbacks
INTLAPI.AddAuthResultObserver(OnAuthResultEvent);
LevelInfinite.AddLIEventObserver(OnLIBaseEventResult);
// Handle AuthResultObserver callback result
private void OnAuthResultEvent(INTLAuthResult AuthResult)
{
switch (AuthResult.MethodId)
{
case (int)INTLMethodID.LI_LOGIN_ENTER_GAME:
if(AuthResult.RetCode == (int)ERROR_CODE.SUCCESS) {
Debug.Log("LI PASS Login success");
} else {
Debug.Log("LI PASS Login failed, ret_code = " + AuthResult.RetCode + ", ret_msg = " + AuthResult.RetMsg);
}
break;
case (int)INTLMethodID.LI_AUTOLOGIN_ENTER_GAME:
if(AuthResult.RetCode == (int)ERROR_CODE.SUCCESS) {
Debug.Log("LI PASS Autologin success");
} else {
Debug.Log("LI PASS Autologin failed, ret_code = " + AuthResult.RetCode + ", ret_msg = " + AuthResult.RetMsg);
}
break;
default:
break;
}
}
// Handle LIEventObserver callback result
private void OnLIBaseEventResult(LIBaseEventResult liRet)
{
switch (liRet.lIEventType)
{
case LIEventType.GN_READY:
break;
default:
break;
}
}
-
需添加 AuthResultObserver 和 LIEventObserver 回调来处理登录组件事件;
-
需添加 AuthResultObserver 和 LIEventObserver 回调来处理登录组件事件;
-
回调数据结构为 INTLAuthResult,其中包含登录信息和账号信息,例如 OpenID、账号绑定信息和账号注销状态。
// Add callbacks
AuthResultObserver = UINTLSDKAPI::GetAuthResultObserver().AddUObject(this, &ULevelInfiniteWindow::OnAuthResult_Callback);
// Handle AuthResultObserver callback result
void ULevelInfiniteWindow::OnAuthResult_Callback(FINTLAuthResult AuthResult)
{
if(AuthResult.MethodId == (int32)LIEnterGameMethodId::kLILoginEnterGame)
{
}
else if (AuthResult.MethodId == (int32)LIEnterGameMethodId::kLIAutoLoginEnterGame)
{
}
}
// Add callbacks
FDelegateHandle LIEventObserver;
LIEventObserver = ULevelInfiniteAPI::GetEventDelegate().AddUObject(this, &ULevelInfiniteWindow::OnLIEvent_Callback);
// Handle LIEventObserver callback result
void ULevelInfiniteWindow::OnLIEvent_Callback(FLIBaseEvent Event)
{
FString logStr;
switch(Event.EventType){
case ELIEventType::GN_READY:
{
break;
}
}
}
步骤八:完成LIPASS登录流程
- Unity
- Unreal Engine
- 调用
AutoLogin接口通过本地缓存中存储的登录态验证玩家的身份; - 在
AuthResultObserver回调中添加以下代码处理自动登录的结果。如果自动登录成功,则玩家进入游戏; - 如果自动登录失败,则需调用
OpenLoginPanel接口打开 LI PASS 登录组件。此登录组件可完成 LI PASS 注册,登录,及完成合规流程; - 在
LIEventObserver中 处理LI Pass 登录成功的回调,进入游戏。
在 Observer 里继续完善逻辑:
// Handle AuthResultObserver callback result
private void OnAuthResultEvent(INTLAuthResult AuthResult)
{
switch (AuthResult.MethodId)
{
case (int)INTLMethodID.LI_LOGIN_ENTER_GAME:
if(AuthResult.RetCode == (int)ERROR_CODE.SUCCESS) {
Debug.Log("LI PASS Login success");
// LI PASS Login success, add your go to lobby code here
} else {
LevelInfinite.OpenLoginPanel();
Debug.Log("LI PASS Login failed, ret_code = " + AuthResult.RetCode + ", ret_msg = " + AuthResult.RetMsg);
}
break;
case (int)INTLMethodID.INTL_AUTH_AUTOLOGIN_FOR_LI:
if (ret.RetCode == INTLErrorCode.SUCCESS)
{
Debug.Log("LI PASS Autologin success");
// LI PASS Login success, add your go to lobby code here
}
else
{
LevelInfinite.OpenLoginPanel();
Debug.Log("LI Autologin failed, ret_code = " + AuthResult.RetCode + ", ret_msg = " + AuthResult.RetMsg);
}
break;
default:
break;
}
}
- 调用
AutoLogin接口通过本地缓存中存储的登录态验证玩家的身份; - 在
AuthResultObserver回调中添加以下代码处理自动登录的结果。如果自动登录成功,则玩家进入游戏; - 如果自动登录失败,则需调用
OpenLoginPanel接口打开 LI PASS 登录组件。此登录组件可完成 LI PASS 注册,登录,及完成合规流程; - 在
LIEventObserver中 处理LI Pass 登录成功的回调,进入游戏。
在 Observer 里继续完善逻辑:
// Handle AuthResultObserver callback result
void ULevelInfiniteWindow::OnAuthResult_Callback(FINTLAuthResult AuthResult)
{
if(AuthResult.MethodId == (int32)LIEnterGameMethodId::kLILoginEnterGame)
{
FString logStr;
if(AuthResult.RetCode == INTL_NAMESPACE::ErrorCode::SUCCESS)
{
logStr = TEXT("LI PASS login success");
// LI Login success, add your code to go to game lobby
}else{
ULevelInfiniteAPI::OpenLoginPanel();
logStr = FString::Printf(TEXT("LI PASS login failed, ret_code = %d, ret_msg = %s"), AuthResult.RetCode, *AuthResult.RetMsg);
}
UE_LOG(LogTemp, Warning, TEXT("%s"), *logStr);
} else if (AuthResult.MethodId == (int32)LIEnterGameMethodId::kLIAutoLoginEnterGame){
if(AuthResult.RetCode == INTL_NAMESPACE::ErrorCode::SUCCESS)
{
UE_LOG(LogTemp, Warning, TEXT("LI PASS Autologin success"));
// LI Autologin success, add your code to go to game lobby
}else{
ULevelInfiniteAPI::OpenLoginPanel();
UE_LOG(LogTemp, Warning, TEXT("LI PASS Autologin failed, ret_code = %d, ret_msg = %s"), AuthResult.RetCode, *AuthResult.RetMsg);
}
}
}
步骤九:更多回调处理
- Unity
- Unreal Engine
开发人员也可添加 LILuaErrorObserver 回调处理 Lua 错误。
开发人员也可添加 LILuaErrorObserver 回调处理 Lua 错误。
配置登录渠道
LI Pass 登录界面下方的各种登录渠道,是可以通过配置 INTLConfig.ini 来展示。不同的平台展示不同的渠道。渠道的先后顺序也对应展示顺序。
ACCOUNT_THIRD_CHANNEL_ANDROID = Guest,Facebook,Google,Twitter,Line
ACCOUNT_THIRD_CHANNEL_IOS = Guest,Facebook,Twitter,Apple,Line
配置游客渠道
使用游客渠道,需要两个步骤:
- Player Network Console 上打开 游客的开关
- 在 INTLConfig.ini 的渠道列表中 添加
Guest,如上面的代码所示。


- 账号状态:是否在绑定其它社交渠道后保留或重置原本的游客账号
- 登录状态:是否在绑定其它社交渠道后将原本的游客账号登录状态切换至对应社交渠道
更多关于 游客渠道的指引,请移步文档
配置第三方登录渠道
本文以 Facebook 渠道为例,介绍在 LI Pass 中接入 Facebook 渠道。需要三个步骤:
- 下载 INTLFacebook 插件,合入工程中
- 在 Player Network Console 上配置 Facebook 的
APP_ID、APP_KEY信息。 - 在 INTLConfig.ini的渠道列表中 添加
Facebook,如上面的代码所示。 - 配置 Android、iOS 的 AppID 等信息,详情参考 Facebook 渠道接入方式。
LI Pass 支持多个移动端第三方渠道。包含(不限于):
可以前往各个渠道了解更多的接入细节。
后台登录接入
更多信息请参考 接入概览中的 后台接入。
移动端打包指引
更多信息请参考 接入概览中的 移动端打包指引。