适用于Unity的SDK / 通过应用程序启动器进行认证
  返回文档

适用于Unity的SDK

通过应用程序启动器进行认证

如果使用艾克索拉启动器或Steam向用户交付应用程序,可以使用启动器的凭证自动认证用户身份。

详解

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

如何设置通过启动器认证进入应用程序

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

注意

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

本SDK使用IGS & BB API与商店进行交互。启动器使用其自己的API,所以本SDK不支持与启动器商店进行交互。

要设置端对端用户认证:
  1. 在您的应用程序中实现启动器授权逻辑
  2. 创建应用程序编译版本并将其上传到启动器。
注:
关于启动器设置和应用程序编译版本上传的详细信息见集成指南

实现通过启动器进行身份认证的逻辑

通过启动器在应用程序中进行授权的过程如下:

  1. 用户授权进入启动器。
  2. 用户安装并运行应用程序。
  3. 启动器运行该应用程序并通过命令行传入用户参数。授权令牌在xsolla-login-token参数中传递。
  4. 应用程序处理命令行参数并获取令牌。
  5. 应用程序验证收到的令牌。
  6. 应用程序在不显示授权页面的情况下自动完成用户授权。

要实现上述逻辑,请使用AuthViaXsollaLauncher SDK方法。

通过启动器进行身份认证的脚本示例:

Copy
Full screen
Small screen
using UnityEngine;
using Xsolla.Auth;
using Xsolla.Core;

namespace Xsolla.Samples.Authorization
{
	public class AuthorizationViaXsollaLauncher : MonoBehaviour
	{
		private void Start()
		{
			// Start authorization via Xsolla Launcher
			// Pass callback functions for success and error cases
			XsollaAuth.AuthViaXsollaLauncher(OnSuccess, OnError);
		}

		private void OnSuccess()
		{
			Debug.Log("Authorization successful");
			// Add actions taken in case of success
		}

		private void OnError(Error error)
		{
			Debug.LogError($"Authorization failed. Error: {error.errorMessage}");
			// Add actions taken in case of error
		}
	}
}

创建应用程序编译版本

  1. 前往您的Unity项目。
  2. 确保SDK设置显示的是您在发布商帐户启动器设置(启动器 > 常规设置 > 身份认证)中指定的登录管理器项目ID。

  1. 运行授权场景,令牌在其中得到处理。
  2. 在主菜单中单击File > Build settings,然后单击Add Open Scenes。确保授权场景添加为列表首项。
  3. 单击Build
  4. 在弹出窗口中指定放置所得编译版本的目录路径。
本文对您的有帮助吗?
谢谢!
我们还有其他可改进之处吗? 留言
非常抱歉
请说明为何本文没有帮助到您。 留言
感谢您的反馈!
我们会查看您的留言并运用它改进用户体验。
隐藏

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

本机用户认证可让玩家通过其所装的Steam应用程序进入您的应用程序。

要设置本机用户认证:

  1. 在发布商帐户中设置通过Steam进行静默认证
  2. 配置您的Unity项目
  3. 实现通过Steam进行身份认证的逻辑
  4. 确保通过Steam进行认证

配置您的Unity项目

注:
SDK使用Steamworks.NET库与Steam进行交互,该库包含在SDK中,位于Assets/Xsolla/ThirdParty/Steamworks.NET目录下。
  1. 打开Unity项目根文件夹下的steam_appid.txt文件。
  2. 在该文件中指定您在Steam中的应用程序ID。文件中的默认值是Steam测试项目的ID,480
  3. 重启Unity编辑器以便更改生效。

实现通过Steam进行身份认证的逻辑

要启动身份认证,请使用SilentAuth SDK方法并传入以下参数:

  • providerName — 应用程序的发布平台。传入steam作为值。
  • appId — 您在Steam中的应用程序ID。值必须与steam_appid.txt文件中指定的值一致。
  • sessionTicket — Steam会话票证。请调用SteamUtils.GetSteamSessionTicket()方法进行获取。
  • onSuccess — 用户认证成功回调。
  • onError — 错误回调。

通过Steam进行身份认证的脚本示例:

Copy
Full screen
Small screen
using UnityEngine;
using Xsolla.Auth;
using Xsolla.Core;

namespace Xsolla.Samples.Steam
{
	public class SteamNativeAuthorization : MonoBehaviour
	{
		private void Start()
		{
			// Get the steam session ticket from `SteamUtils` class
			var steamSessionTicket = SteamUtils.GetSteamSessionTicket();

			// Start silent authentication
			// Pass `steam` as `providerName` parameter
			// Pass your `Steam App ID` as `appId` parameter. We use `480` as an example
			// Pass `steamSessionTicket` variable as the `sessionTicket` parameter
			// Pass callback functions for success and error cases
			XsollaAuth.SilentAuth("steam", "480", steamSessionTicket, OnSuccess, OnError);
		}

		private void OnSuccess()
		{
			Debug.Log("Authorization successful");
			// Add actions taken in case of success
		}

		private void OnError(Error error)
		{
			Debug.LogError($"Authorization failed. Error: {error.errorMessage}");
			// Add actions taken in case of error
		}
	}
}

确保通过Steam进行认证

  1. 启动Steam并登录,否则调用回调函数会发生Requested steam session ticket is null. Please check your Steam settings错误。
  2. 创建用于独立平台的Unity项目的编译版本并运行,或在Unity编辑器中启动一个场景。如果一切设置正确,您将自动登入应用程序。
本文对您的有帮助吗?
谢谢!
我们还有其他可改进之处吗? 留言
非常抱歉
请说明为何本文没有帮助到您。 留言
感谢您的反馈!
我们会查看您的留言并运用它改进用户体验。
隐藏
上次更新时间: 2023年10月10日

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

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