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