身份验证

通过方法详解文档了解高级设置。

如何设置OAuth 2.0认证

OAuth 2.0不使用长久有效令牌而使用短时有效令牌来提供长期用户认证(通过刷新令牌)。刷新令牌允许用户在一段时间内留在应用程序中而不必重新输入用户名和密码。这样可以避免用户认证数据泄露的风险。

设置OAuth 2.0通过以下方式授权:

  • 通过用户名或电子邮箱和密码
  • 通过社交网络
  • 通过Steam

如启用了该选项,则用户注册和认证通过调用Register new userJWT auth by username and password API调用进行。Login & Account System插件为OAuth 2.0授权提供与JWT令牌授权相同的方法。在FXsollaAuthToken结构中,刷新令牌在RefreshToken字段中指定。

Note
启用此设置不会改变用户在您应用程序中的认证过程。

要配置OAuth 2.0授权:

  1. 在发布商帐户中为登录管理器项目设置OAuth 2.0认证
  2. 在UE4项目中设置插件

在发布商帐户中设置登录管理器项目的OAuth 2.0认证

  1. 前往您的发布商帐户。
  2. 登录管理器部分单击打开,然后前往登录管理器项目
  3. 在登录管理器部分单击打开并设置
  4. 前往常规设置 > 授权
  5. OAuth 2.0认证部分单击连接
  6. 指定OAuth 2.0重定向URI并单击连接
  7. 复制并保存客户端ID

在UE4项目中设置插件

  1. 在虚幻编辑器中打开您的UE4项目。
  2. 前往Settings > Project Settings > Plugins > Xsolla Login
  3. 启用Use OAuth 2.0选项。
  4. Client ID字段中指定在发布商帐户中设置OAuth 2.0时收到的客户端ID

Login & Account System插件中实现了以下方法与刷新令牌交互:

  • RefreshToken — 令牌过期后刷新令牌。
  • ExchangeAuthenticationCodeToToken — 用用户的认证代码换取一个有效的JWT。

RegisterUserGetSocialAuthenticationUrlAuthenticateWithSessionTicket中的State参数用于OAuth 2.0认证过程中的额外用户验证。该参数用于防止可能的CSRF攻击

本文对您的有帮助吗?
谢谢!
我们还有其他可改进之处吗? 留言
非常抱歉
请说明为何本文没有帮助到您。 留言
感谢您的反馈!
我们会查看您的留言并运用它改进用户体验。
隐藏

如何使用自有登录系统

Notice
仅在使用以下插件时参考本方法详解:
  • Game Commerce
  • Cross-Buy

您可以将Game Commerce和Cross-Buy插件与您的自有登录系统集成。要进行该操作,需通过支付中心访问令牌在您的应用程序中实现用户身份认证。请参阅游戏内商店文档中的认证算法。

要使用您的自有登录系统:

  1. 为您的UE4项目配置插件
  2. 实现处理支付中心访问令牌的逻辑

为UE4项目配置插件

  1. 在Unreal Editor中打开您的UE项目。
  2. 前往Settings > Project Settings > Plugins > Xsolla Login
  3. 勾选Custom Auth Via Access Token复选框。
  4. Custom Auth Server URL字段中,指定授权服务器的地址。

处理支付中心访问令牌的逻辑

  1. 对于授权,请使用GetAccessTokenFromCustomAuthServer方法,该方法返回从应用程序服务器侧收到的支付中心访问令牌。
  2. 请使用Game Commerce或Cross-Buy插件方法中获取的令牌,不要使用JWT令牌。
  3. 实现令牌过期后重新获取支付中心访问令牌的逻辑。建议在后台获取新令牌,这样用户就无须重新登录应用程序。

Note
与游戏内商店和物品库交互时支付中心访问令牌的有效期是距上次调用艾克索拉API之后1小时。如要更改支付中心访问令牌的有效期,请联系您的帐户经理。
本文对您的有帮助吗?
谢谢!
我们还有其他可改进之处吗? 留言
非常抱歉
请说明为何本文没有帮助到您。 留言
感谢您的反馈!
我们会查看您的留言并运用它改进用户体验。
隐藏

如何设置通过社交网络进行本机用户认证

本机用户认证(Native authentication)允许玩家通过安装至设备的应用程序使用社交网络帐户进行登录。目前SDK已实现通过以下社交网络进行本机用户认证:

  • Google
  • Facebook

Note
通过社交网络进行本机用户认证在以下版本中提供:
  • Game Commerce插件0.5.7及更高版本(适用于UE4)
  • Login & Account System插件0.3.0及更高版本(适用于UE4)
  • Cross-Buy插件0.3.0及更高版本(适用于UE4)

要配置本机用户认证:

  1. 创建适用于Android的UE4项目编译版本

Note
在接下来的本机用户认证配置中,还会用到您Android应用程序的包名称(可在Android Package Name ('com.YourCompany.Project' [PROJECT] is replaced with project name)字段的Edit > Project Settings > Platforms > Android部分中找到)。

  1. 对于通过Facebook进行的本机用户认证,请创建您的Facebook开发者帐户并新建应用程序。
  2. 在Facebook开发者帐户中设置应用页面
  3. 对于通过Google进行的本机用户认证,请先在Google API Console中设置项目
  4. 在发布商帐户中为登录管理器项目设置社交网络连接
  5. 为您的UE4项目设置插件

在Facebook开发者帐户中设置应用页面

  1. 前往Facebook开发者帐户中的项目设置。
  2. 前往设置 > 基本
  3. 单击添加平台,选择Android
  4. Google Play包名称字段中指定您Android应用程序的包名称。
  5. 类名字段中指定活动的完全限定类名称(默认值是com.epicgames.ue4.GameActivity)。
  6. 生成一个散列密钥并填入密钥散列字段中。
  7. 单击保存更改

在接下来的本机用户认证配置中,还会用到设置 > 基本部分中的应用编号应用密钥

在Google API Console中设置项目

  1. 前往Google API Console
  2. 单击新建项目
  3. 指定项目名称位置,然后单击保存
  4. 前往所创建的项目,然后单击侧边栏上的OAuth同意屏幕
  5. 选择外部,然后单击创建
  6. 指定必需参数,然后单击保存
  7. 在侧边栏上点击凭据
  8. 为您的Android应用创建一个OAuth 2.0客户端:

    1. 单击创建凭据,选择OAuth客户端ID
    2. 应用类型字段中指定Android
    3. 指定名称
    4. 包名称字段中指定您Android应用程序的包名称。
    5. 获取SHA密钥。
    6. SHA-1证书指纹字段中指定上一步中生成的SHA密钥。
    7. 单击创建
    8. 单击确定

  1. 为Web应用创建一个OAuth 2.0客户端:
    1. 单击创建凭据,选择OAuth客户端ID
    2. 应用类型字段中指定Web应用
    3. 指定名称
    4. 已获授权的重定向URl部分单击添加URI,并指定https://login.xsolla.com/api/social/oauth2/callback URl。
    5. 单击创建
    6. 单击确定

在接下来的本机用户认证配置中,还会用到Web应用的客户端ID设置中的客户端ID客户端密钥

在艾克索拉发布商帐户中设置登录管理器项目的社交网络连接

  1. 发布商帐户中打开您的项目。
  2. 在侧边栏中单击登录管理器,然后前往登录管理器项目 > 您的登录管理器项目 > 社交网络连接
  3. 要设置通过Facebook进行认证:

    1. Facebook面板中单击编辑,将状态更改为断开连接
    2. Application ID字段中指定Facebook开发者帐户中的应用编号
    3. Application Secret字段中指定Facebook开发者帐户中的应用密钥
    4. 单击连接

  1. 要设置通过Google进行认证:
    1. Google面板中单击编辑,将状态更改为断开连接
    2. Application ID字段中指定Google API Console中Web应用的客户端ID
    3. Application Secret字段中指定Google API Console中Web应用的客户端密钥
    4. 单击连接

为UE4项目设置插件

  1. 前往您的UE4项目。
  2. 前往Settings > Project Settings > Plugins > Xsolla Login > Xsolla Login Android
  3. 勾选Allow Native Auth复选框。
  4. Facebook App Id字段中指定Facebook开发者帐户中的应用编号
  5. Google App Id字段中指定Google API Console中的Web应用的客户端ID

本文对您的有帮助吗?
谢谢!
我们还有其他可改进之处吗? 留言
非常抱歉
请说明为何本文没有帮助到您。 留言
感谢您的反馈!
我们会查看您的留言并运用它改进用户体验。
隐藏

如何设置通过Steam进行本机用户认证

本机用户认证允许玩家通过安装的Steam客户端进入您的应用程序。设置通过Steam进行本机用户认证后,还可向应用程序添加通过Steam进行支付的功能。

要设置本机用户认证:

  1. 在发布商帐户中设置通过Steam进行静默认证
  2. 配置您的UE4项目
  3. 配置事件处理
  4. 确保通过Steam进行认证

配置您的UE4项目

  1. 前往UE4项目的Config目录。
  2. DefaultEngine.ini文件中添加下方代码并在SteamDevAppId参数中指定您的Steam应用ID。

Copy
Full screen
Small screen
    [/Script/Engine.GameEngine]
    +NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver")
    
    [OnlineSubsystem]
    DefaultPlatformService=Steam
    
    [OnlineSubsystemSteam]
    bEnabled=true
    SteamDevAppId=480
    
    [/Script/OnlineSubsystemSteam.SteamNetDriver]
    NetConnectionClassName="OnlineSubsystemSteam.SteamNetConnection"

    1. 在虚幻编辑器中打开项目。
    2. 前往Settings > Plugins > Online Platform
    3. Online Subsystem Steam模块,勾选Enabled复选框,然后单击Restart Now按钮保存设置并重新加载虚幻编辑器。

    配置事件处理

    1. 下图显示如何将节点添加至项目:

      要通过Steam认证用户,应使用GetSessionTicket方法获取session ticket。然后在调用AuthenticateWithSessionTicket方法时传入收到的值。随后即可获得调用API时需使用的令牌。

    1. 如要额外进行令牌验证,请添加ValidateToken方法回调(可选)。

    确保通过Steam进行认证

    1. 创建适用于独立平台的UE4项目的编译文件。
    2. 启动Steam并登录。
    3. 启动您的应用程序。如果一切正确,将显示Steam弹出窗口。

    本文对您的有帮助吗?
    谢谢!
    我们还有其他可改进之处吗? 留言
    非常抱歉
    请说明为何本文没有帮助到您。 留言
    感谢您的反馈!
    我们会查看您的留言并运用它改进用户体验。
    隐藏

    如何设置令牌失效

    令牌失效可提高应用程序中用户认证数据的安全性。如启用该选项,每次用户认证时旧令牌将失效,新令牌将取代旧令牌。

    Note
    您可以为使用JWT令牌的认证配置令牌失效。对于OAuth 2.0,令牌失效由协议本身提供,不必单独配置。

    使用SDK时,如果with_logout参数值为1,调用Auth by username and passwordAuth via social network API调用将使现有令牌失效并生成新令牌。

    要在您的UE4项目中启用令牌失效:

    1. 前往Settings > Project Settings > Plugins > Xsolla Login
    2. 启用Invalidate Existing Sessions选项。

    本文对您的有帮助吗?
    谢谢!
    我们还有其他可改进之处吗? 留言
    非常抱歉
    请说明为何本文没有帮助到您。 留言
    感谢您的反馈!
    我们会查看您的留言并运用它改进用户体验。
    隐藏

    如何设置通过启动器授权进入应用程序

    您可以使用艾克索拉启动器向用户交付应用程序及其更新。启动器包含一个内置的授权工具。如要避免重复输入用户名和密码的需要,可设置通过启动器授权进入应用程序。

    Notice
    要使用启动器,需配置登录管理器。不支持使用其他授权系统。

    设置SDK与启动器配合工作

    1. 在您的发布商帐户中设置启动器

    Note
    config.json文件中,请更改以下对象的值:
    • launcher_project_id — 指定在发布商帐户 > 启动器 > 常规设置 > 常规信息中找到的启动器ID
    • login_project_id — 指定发布商帐户 > 启动器 > 常规设置 > 验证中找到的登录管理器ID

    1. 自定义启动器UI

    Notice
    通过艾克索拉服务器进行SDK集成使用Commerce API调用,因此不支持启动器商店。

    1. 在您的应用程序中实现启动器授权逻辑
    2. 生成启动器安装文件和编译版本压缩包
    3. 创建应用程序编译版本
    4. 将应用程序编译版本上传至艾克索拉更新服务器

    实现通过启动器进行授权的逻辑

    应用程序启动时,启动器通过命令行传入参数列表。授权令牌在xsolla-login-token参数中传入。验证收到的令牌。如果令牌验证成功,则授权用户进入应用程序。

    可在演示项目的W_LoginDemo蓝图中查看上述逻辑的实现示例。

    创建应用程序编译版本

    1. 前往您的UE4项目。
    2. Content Browser中,打开用户授权Map,令牌在其中得到处理。
    3. 在主菜单中前往Edit > Project Settings
    4. 前往Project> Maps & Modes,在Game Default Map字段中选择之前打开的授权Map。

    1. 前往Plugins > Xsolla Login
    2. Project ID字段中,指定在发布商帐户 > 项目设置 > 项目ID中找到的项目ID。
    3. Login ID字段中,指定在发布商帐户 > 启动器 > 常规设置 > 验证中找到的登录管理器ID。
    4. 根据创建的编译版本适用的平台,在主菜单中前往File > Package Project > Windows (64 bit)File > Package Project > Mac
    5. 在弹出窗口中指定放置所得编译版本的目录路径。

    本文对您的有帮助吗?
    谢谢!
    我们还有其他可改进之处吗? 留言
    非常抱歉
    请说明为何本文没有帮助到您。 留言
    感谢您的反馈!
    我们会查看您的留言并运用它改进用户体验。
    隐藏
    本文对您的有帮助吗?
    谢谢!
    我们还有其他可改进之处吗? 留言
    非常抱歉
    请说明为何本文没有帮助到您。 留言
    感谢您的反馈!
    我们会查看您的留言并运用它改进用户体验。
    为此页面评分
    为此页面评分
    我们还有其他可改进之处吗?

    不想回答

    感谢您的反馈!
    上次更新时间: 2021年6月17日

    发现了错别字或其他内容错误? 请选择文本,然后按Ctrl+Enter。

    报告问题
    我们非常重视内容质量。您的反馈将帮助我们做得更好。
    请留下邮箱以便我们后续跟进
    感谢您的反馈!