Аутентификация в приложении через установщик
Если вы используете для доставки вашего приложения пользователям Xsolla Launcher или Steam, вы можете аутентифицировать пользователя автоматически, используя учетные данные из установщика.
Инструкции
Для доставки вашего приложения пользователям и его обновления вы можете использовать Xsolla Launcher. Launcher содержит встроенный инструмент аутентификации. Чтобы избежать необходимости повторного ввода имени пользователя и пароля, настройте аутентификацию в вашем приложении через Launcher.
Для использования Launcher должен быть настроен продукт Login. Использование другой системы авторизации не поддерживается.
SDK для работы с магазином использует Shop Builder API, Launcher использует собственный API, поэтому SDK не поддерживает работу с магазином Launcher.
- Реализуйте в вашем приложении логику аутентификации через Launcher.
- Создайте сборку приложения и загрузите ее в Launcher.
Реализация логики аутентификации через Launcher
Сценарий авторизации в приложении через Launcher:
- Пользователь авторизуется в Launcher.
- Пользователь устанавливает и запускает приложение.
- Launcher запускает приложение с передачей параметров пользователя через командную строку. Токен для авторизации передается в параметре
xsolla-login-token
. - Приложение обрабатывает параметры командной строки и получает токен.
- Приложение валидирует полученный токен.
- Приложение автоматически авторизует пользователя, не отображая страницу авторизации.
Для реализации описанной логики используйте метод SDK AuthViaXsollaLauncher
.
Пример скрипта аутентификации через Launcher:
- 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}
Создание сборки приложения
- Откройте проект Unity.
- Убедитесь, что в настройках SDK указан ID варианта авторизации, который указан в Личном кабинете в настройках Launcher (раздел Дистрибуция > Лаунчер > Общие настройки > Настройки аутентификации).
- Запустите сцену авторизации пользователя, в которой выполняется обработка токена.
- В главном меню выберите пункт
File > Build settings и нажмитеAdd Open Scenes . Убедитесь, что сцена авторизации добавлена первой в списке. - Нажмите
Build . - Во всплывающем окне укажите путь к директории, в которую будет помещена готовая сборка.
Нативная авторизация позволяет игрокам войти в ваше приложение через установленное приложение Steam.
Чтобы настроить нативную авторизацию:
- Подключите автоматическую аутентификацию через Steam в Личном кабинете.
- Настройте проект Unity.
- Инициализируйте Steamworks.NET.
- Реализуйте логику аутентификации через Steam.
- Проверьте аутентификацию через Steam.
Настройка проекта Unity
- Установите в ваш Unity-проект библиотеку Steamworks.NET.
- Задайте необходимые настройки в файле
steam_appid.txt
. Для этого:- Откройте файл
steam_appid.txt
, который находится в корневой папке Unity-проекта. Если файл отсутствует, создайте его. - Укажите в файле ID вашего приложения в Steam и сохраните изменения. По умолчанию в файле указано значение
480
— это ID тестового проекта Steam. - Перезапустите редактор Unity, чтобы изменения вступили в силу.
- Откройте файл
Инициализация Steamworks.NET
Перед началом вызова любых методов библиотеки Steamworks.NET убедитесь, что библиотека проинициализирована.
Для удобства рекомендуется использовать готовый класс SteamManager. Этот класс обрабатывает инициализацию библиотеки Steamworks.NET, автоматически вызывает SteamAPI.Shutdown()
при завершении работы приложения и предоставляет свойство SteamManager.Initialized
для проверки статуса инициализации.
Если Steam не запущен или библиотека Steamworks.NET не может быть инициализирована, SteamManager
корректно завершит выполнение и предоставит безопасный способ проверить статус:
- C#
1if (!SteamManager.Initialized)
2{
3 Debug.LogWarning("Steam is not initialized. Working with the API is not possible.");
4 return;
5}
Добавьте класс SteamManager
в стартовую сцену игры как компонент на отдельном игровом объекте. Он должен существовать в единственном экземпляре и сохраняться между сценами.
Реализация логики аутентификации через Steam
Для запуска аутентификации используйте метод SDK SilentAuth
, передав в него следующие параметры:
providerName
— платформа публикации приложения. Передайте значениеsteam
.appId
— ID вашего приложения в Steam. Значение должно совпадать со значением, указанным в файлеsteam_appid.txt
.sessionTicket
— токен сессии Steam. Чтобы его получить, используйте методSteamUtils.GetSteamSessionTicket()
.onSuccess
— функция, которая вызывается в случае успешной аутентификации пользователя.onError
— функция, которая вызывается в случае ошибки.
Пример скрипта аутентификации через Steam:
- 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 и авторизуйтесь в нем, иначе будет вызвана функция обратного вызова c ошибкой
Requested steam session ticket is null. Please check your Steam settings
. - Создайте сборку проекта Unity для stand-alone платформы и запустите ее или запустите приложение в редакторе Unity. Если настройка выполнена правильно, вы автоматически авторизуетесь в приложении.
Нашли опечатку или ошибку в тексте? Выделите ее и нажмите Ctrl+Enter.