登录配置
开发人员可以通过 LI PASS 接口来管理玩家登录鉴权,包括登录组件和账号中心。登录组件负责玩家注册、登录和注销。
登录组件
LI PASS 为登录组件提供了两种不同的方法,每种方法都旨在支持不同的场景。OpenLoginPanel
方法适用于手游以及拥有自己登录器的 Windows 游戏。LoginChannelWithLIPass
方法专为 PS5 和 Xbox 主机游戏以及在 Steam 和 Epic 上发布的 Windows 游戏而设计。下文将介绍这两种方法并解释其实现方式。
OpenLoginPanel
此接口适用于在移动平台(特别是 iOS 和 Android)上发布的游戏,以及那些拥有自己登录器的 Windows 游戏。游戏可支持玩家通过 LI PASS 和其他 30 多个渠道登录。
- Unity
- Unreal Engine
在完成客户端 入门指引 的第3到7步后,调用 AutoLogin
接口通过本地缓存中存储的登录态验证玩家的身份。如果自动登录成功,则玩家进入游戏。如果自动登录失败,则需调用 OpenLoginPanel
接口打开 LI PASS 登录组件。此登录组件可完成 LI PASS 注册,登录,及完成合规流程。
在 AuthResultObserver
回调中添加以下代码处理自动登录的结果。
if (AuthResult.MethodId == (int)INTLMethodID.LI_AUTOLOGIN_ENTER_GAME) {
if(AuthResult.RetCode == (int)ERROR_CODE.SUCCESS) {
Debug.Log("LI Autologin success");
} else {
Debug.Log("LI Autologin failed, ret_code = " + AuthResult.RetCode + ", ret_msg = " + AuthResult.RetMsg);
LevelInfinite.OpenLoginPanel();
}
}
在完成客户端 入门指引的第3到7步后,调用 AutoLogin
接口通过本地缓存中存储的登录态验证玩家的身份。如果自动登录成功,则玩家进入游戏。如果自动登录失败,则需调用 OpenLoginPanel
接口打开 LI PASS 登录组件。此登录组件可完成 LI PASS 注册,登录,及完成合规流程。
在 AuthResultObserver
回调中添加以下代码处理自动登录的结果。
if (AuthResult.MethodId == (int32)LIEnterGameMethodId::kLIAutoLoginEnterGame) {
if(AuthResult.RetCode == INTL_NAMESPACE::ErrorCode::SUCCESS) {
UE_LOG(LogTemp, Warning, TEXT("LI Autologin success"));
} else {
UE_LOG(LogTemp, Warning, TEXT("LI Autologin failed, ret_code = %d, ret_msg = %s"), AuthResult.RetCode, *AuthResult.RetMsg);
ULevelInfiniteAPI::OpenLoginPanel();
}
}
此接口的默认登录组件支持新玩家创建 LI PASS,使用 LI PASS 账号和密码或邮箱与验证码登录游戏,通过其他渠道(包括游客账号)登录游戏,以及密码重置功能。如下图所示:
如需自定义登录组件支持的功能,请参见 LI PASS 配置。
LoginChannelWithLIPass
此接口适用于主机端的 PS5、Xbox 和 Windows 的 Steam、Epic 平台上发布的游戏。此接口支持发行平台账号与 LI PASS 绑定,但不支持绑定其他渠道账号。
此处建议关闭 LI PASS 的人机验证功能,适配主机端与 PC 平台的配置。有关功能的更多详情,请参见 人机验证功能配置开关。
- PS5 & Xbox
- Steam & Epic
对于 PS5 和 Xbox 上的游戏,此接口会在游戏启动时显示带有跳过按钮的 LI PASS 登录注册界面。玩家可以将 PS5 或 Xbox 账号绑定到 LI PASS,也可以跳过此账号绑定流程。
对于在 Windows 平台上发布的 Steam 和 Epic 游戏,此接口默认显示不带跳过按钮的 LI PASS 绑定界面,要求玩家在游戏启动时将 Steam 或 Epic 账号绑定到 LI PASS,然后进入游戏。
对于跨平台游戏,建议使用默认配置强制绑定 LI PASS 以支持跨平台游戏进程。不过,LI PASS 登录组件也支持游戏展示一个跳过按钮,允许玩家跳过 LI PASS 绑定流程,直接使用 Steam 或 Epic 账号进入游戏。要启用此选项,请在 INTLConfig.ini
配置文件的 LI PASS 部分添加 ACCOUNT_FLOW_SWITCH = 24
,效果如下图所示。
Player Network 控制台中的 LI PASS 登录组件配置优先级高于 SDK 的配置文件。如果开发人员在本地配置文件中配置了 ACCOUNT_FLOW_SWITCH = 24
,但在 Player Network 控制台中设置了不同的配置,那么 Player Network 控制台中的配置将覆盖本地配置,造成 ACCOUNT_FLOW_SWITCH = 24
无法生效。
跳过此过程的首次玩家将收到弹窗提醒他们绑定 LI PASS。玩家可以继续绑定 LI PASS 或关闭弹窗页面进入游戏。关闭弹窗页面的玩家仍可在稍后阶段通过账号中心绑定游戏账号。
- Unity
- Unreal Engine
在完成客户端 入门指引 的第3到7步后,调用 LoginChannelWithLIPass
接口打开 LI PASS 登录组件,并指定玩家使用的登录渠道。如果当前账号尚未绑定 LI PASS,且玩家是第一次进入游戏,登录组件将显示绑定 LI PASS 的用户界面。
LevelInfinite.LoginChannelWithLIPass(INTLChannel.Xbox);
在完成客户端 入门指引 的第3到7步后,调用 LoginChannelWithLIPass
接口打开 LI PASS 登录组件,并指定玩家使用的登录渠道。如果当前账号尚未绑定 LI PASS,且玩家是第一次进入游戏,登录组件将显示绑定 LI PASS 的用户界面。
ULevelInfiniteAPI::LoginChannelWithLIPass(EINTLLoginChannel::kChannelXbox);
如需在 Player Network 控制台上自定义 LI PASS 登录组件,请参见 LI PASS 配置。