通过应用程序启动器进行认证
如果使用艾克索拉启动器或Steam向用户交付应用程序,可以使用启动器的凭证自动认证用户身份。
详解
通过方法详解文档了解高级设置。
您可以使用艾克索拉启动器向用户交付应用程序及其更新。启动器包含一个内置的授权工具。如要避免重复输入用户名和密码,可设置通过启动器授权进入应用程序。
注意
要使用启动器,需配置登录管理器。不支持使用其他授权系统。
本SDK使用Shop Builder API与商店进行交互。启动器使用其自己的API,所以本SDK不支持与启动器商店进行交互。
- 在您的应用程序中实现启动器授权逻辑。
- 创建应用程序编译版本并将其上传到启动器。
注:
关于启动器设置和应用程序编译版本上传的详细信息见集成指南。
实现通过启动器进行身份认证的逻辑
通过启动器在应用程序中进行授权的过程如下:
- 用户授权进入启动器。
- 用户安装并运行应用程序。
- 启动器运行该应用程序并通过命令行传入用户参数。授权令牌在
xsolla-login-token
参数中传递。 - 应用程序处理命令行参数并获取令牌。
- 应用程序验证收到的令牌。
- 应用程序在不显示授权页面的情况下自动完成用户授权。
要实现上述逻辑,请使用AuthViaXsollaLauncher
SDK方法。
通过启动器进行身份认证的脚本示例:
Copy
- C#
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}
创建应用程序编译版本
- 运行授权场景,令牌在其中得到处理。
- 在主菜单中单击
File > Build settings ,然后单击Add Open Scenes 。确保授权场景添加为列表首项。 - 单击
Build 。 - 在弹出窗口中指定放置所得编译版本的目录路径。
本文对您的有帮助吗?
感谢您的反馈!
我们会查看您的留言并运用它改进用户体验。本机用户认证可让玩家通过其所装的Steam应用程序进入您的应用程序。
要设置原生身份认证:
配置您的Unity项目
- 在Unity项目中安装Steamworks.NET库。
- 在
steam_appid.txt
文件中配置必要设置。具体操作:- 打开Unity项目根文件夹下的
steam_appid.txt
文件。如果文件不存在,请创建它。 - 在该文件中指定您在Steam中的应用程序ID。文件中的默认值是Steam测试项目的ID,
480
。 - 重启Unity编辑器以便更改生效。
- 打开Unity项目根文件夹下的
初始化Steamworks.NET
在调用Steamworks.NET库中的任何方法之前,确保库已初始化。
为方便起见,建议使用现成的SteamManager类。该类处理Steamworks.NET库的初始化,在应用程序关闭时自动调用SteamAPI.Shutdown()
,并提供SteamManager.Initialized
属性来检查初始化状态。
如果Steam未运行或Steamworks.NET库初始化失败,SteamManager
会正常关闭并提供安全的状态验证方式:
Copy
- C#
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
- C#
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进行认证
- 启动Steam并登录,否则调用回调函数会发生
Requested steam session ticket is null. Please check your Steam settings
错误。 - 创建用于独立平台的Unity项目的编译版本并运行,或在Unity编辑器中启动一个场景。如果一切设置正确,您将自动登入应用程序。
本文对您的有帮助吗?
感谢您的反馈!
我们会查看您的留言并运用它改进用户体验。发现了错别字或其他内容错误? 请选择文本,然后按Ctrl+Enter。