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

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

详解

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

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

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

注意

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

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

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

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

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

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

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

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

Copy
Full screen
Small screen
 1using UnityEngine;
 2using Xsolla.Auth;
 3using Xsolla.Core;
 4
 5namespace Xsolla.Samples.Authorization
 6{
 7	public class AuthorizationViaXsollaLauncher : MonoBehaviour
 8	{
 9		private void Start()
10		{
11			// Start authorization via Xsolla Launcher
12			// Pass callback functions for success and error cases
13			XsollaAuth.AuthViaXsollaLauncher(OnSuccess, OnError);
14		}
15
16		private void OnSuccess()
17		{
18			Debug.Log("Authorization successful");
19			// Add actions taken in case of success
20		}
21
22		private void OnError(Error error)
23		{
24			Debug.LogError($"Authorization failed. Error: {error.errorMessage}");
25			// Add actions taken in case of error
26		}
27	}
28}

创建应用程序编译版本

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

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

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

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

要设置原生身份认证:

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

配置您的Unity项目

  1. 在Unity项目中安装Steamworks.NET库
  2. steam_appid.txt文件中配置必要设置。具体操作:
    1. 打开Unity项目根文件夹下的steam_appid.txt文件。如果文件不存在,请创建它。
    2. 在该文件中指定您在Steam中的应用程序ID。文件中的默认值是Steam测试项目的ID,480
    3. 重启Unity编辑器以便更改生效。

初始化Steamworks.NET

在调用Steamworks.NET库中的任何方法之前,确保库已初始化。

为方便起见,建议使用现成的SteamManager类。该类处理Steamworks.NET库的初始化,在应用程序关闭时自动调用SteamAPI.Shutdown(),并提供SteamManager.Initialized属性来检查初始化状态。

如果Steam未运行或Steamworks.NET库初始化失败,SteamManager会正常关闭并提供安全的状态验证方式:

Copy
Full screen
Small screen
1if (!SteamManager.Initialized)
2{
3    Debug.LogWarning("Steam is not initialized. Working with the API is not possible.");
4    return;
5}

SteamManager类作为组件添加到游戏初始场景中的独立游戏对象上。它应作为单例存在并在场景间持续存在。

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

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

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

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

Copy
Full screen
Small screen
 1using UnityEngine;
 2using Xsolla.Auth;
 3using Xsolla.Core;
 4
 5namespace Xsolla.Samples.Steam
 6{
 7	public class SteamNativeAuthorization : MonoBehaviour
 8	{
 9		private void Start()
10		{
11			// Ensure that the Steamworks API is initialized !!!
12
13			// Get the steam session ticket from `SteamUtils` class
14			var steamSessionTicket = SteamUtils.GetSteamSessionTicket();
15
16			// Start silent authentication
17			// Pass `steam` as `providerName` parameter
18			// Pass your `Steam App ID` as `appId` parameter. We use `480` as an example
19			// Pass `steamSessionTicket` variable as the `sessionTicket` parameter
20			// Pass callback functions for success and error cases
21			XsollaAuth.SilentAuth("steam", "480", steamSessionTicket, OnSuccess, OnError);
22		}
23
24		private void OnSuccess()
25		{
26			Debug.Log("Authorization successful");
27
28			// Add actions taken in case of success
29		}
30
31		private void OnError(Error error)
32		{
33			Debug.LogError($"Authorization failed. Error: {error.errorMessage}");
34
35			// Add actions taken in case of error
36		}
37	}
38}

确保通过Steam进行认证

  1. 启动Steam并登录,否则调用回调函数会发生Requested steam session ticket is null. Please check your Steam settings错误。
  2. 创建用于独立平台的Unity项目的编译版本并运行,或在Unity编辑器中启动一个场景。如果一切设置正确,您将自动登入应用程序。

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

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

报告问题
我们非常重视内容质量。您的反馈将帮助我们做得更好。
请留下邮箱以便我们后续跟进
感谢您的反馈!
无法发送您的反馈
请稍后重试或发送邮件至doc_feedback@xsolla.com与我们联系。