Аутентификация
Основная информация
Решение для входа и регистрации пользователей создано на базе продукта Авторизация. Настройка способов аутентификации для вашего проекта доступна в Личном кабинете в разделе Логин.
Стандартный протокол аутентификации OAuth 2.0 ориентирован на простоту разработки клиентского приложения. OAuth 2.0 позволяет обновлять токен без участия пользователя. При аутентификации по стандарту JWT для обновления токена пользователю нужно ввести свои учетные данные и войти в приложение.
ОAuth 2.0 является рекомендуемым способом аутентификации и выбран в настройках SDK по умолчанию. Подробные сведения приведены в инструкции Как настроить OAuth 2.0 аутентификацию.
Если вы используете в своем приложении авторизацию по стандарту JWT, рекомендуется настроить инвалидацию токена.
Была ли статья полезна?
Для аутентификации пользователя может использоваться имя пользователя или email-адрес.
При регистрации ввод email-адреса является обязательным, даже если для аутентификации используется имя пользователя. Email-адрес используется для подтверждения регистрации пользователя и для сброса пароля.
При успешной регистрации пользователю приложения отправляется письмо для подтверждения регистрации на указанный email-адрес. Вы можете кастомизировать письма для пользователей в Личном кабинете.
Полезные ссылки
Аутентификация пользователя по имени пользователя/email-адресу и паролю (сценарий использования)
Была ли статья полезна?
Социальные сети могут быть как основным способом аутентификации в вашем приложении, так и альтернативным.
Если пользователь входит в систему впервые через аккаунт социальной сети, новая учетная запись создается автоматически.
Если аккаунт социальной сети является альтернативным способом аутентификации, для автоматической привязки аккаунта к существующей учетной записи должны быть выполнены следующие условия:
- Пользователь, зарегистрированный с помощью имени пользователя или email-адреса, входит в приложение через аккаунт социальной сети.
- Социальная сеть возвращает email-адрес.
- Email-адрес из социальной сети совпадает с email-адресом, указанным пользователем при регистрации в вашем приложении.
Поддерживается авторизация через следующие социальные сети:
- Amazon
- Apple
- Baidu
- Battle.net
- Discord
- GitHub
- Kakao
- MSN
- Mail.ru
- Microsoft
- Naver
- Odnoklassniki
- PayPal
- Steam
- Twitch.tv
- VK
- Vimeo
- Xbox Live
- Yahoo
- Yandex
- YouTube
Для мобильных приложений также поддерживается авторизация через клиент социальной сети на устройстве пользователя (нативная авторизация через социальные сети). В настоящее время для SDK реализована нативная авторизация через:
Была ли статья полезна?
Если вы используете для доставки вашего приложения пользователям Лаунчер Иксоллы или Steam, вы можетеаутентифицировать пользователя автоматически, используя учетные данные из установщика.
Полезные ссылки
Была ли статья полезна?
Аутентификация по ID устройства позволяет пользователям начать работу с приложением на мобильном устройстве без ввода данных для регистрации. При первом входе в приложение по ID устройства новый аккаунт создается автоматически, при этом пользователю не требуется вводить имя пользователя, email-адрес или другие данные. SDK поддерживает авторизацию по ID мобильных устройств на платформах Android и iOS.
Полезные ссылки
Как реализовать аутентификацию пользователя по ID устройства
Была ли статья полезна?
Была ли статья полезна?
Политика конфиденциальности
При использовании SDK добавьте в ваше приложение ссылку на соглашение о Политике конфиденциальности Иксоллы. Пример такой ссылки приведен в демопроекте на экране регистрации пользователя.
Инструкции
Протокол OAuth 2.0 использует короткоживущие токены с долговременной авторизацией (refresh-токены) вместо долгоживущих токенов. Refresh-токен позволяет длительное время использовать ваше приложение без необходимости повторного ввода имени пользователя и пароля. При этом исключается вероятность того, что данные авторизации пользователя будут скомпрометированы.
Протокол OAuth 2.0 используется для авторизации:
- через имя пользователя или email-адрес и пароль;
- через социальные сети;
- через Steam.
При включении настройки регистрация и авторизация пользователя выполняются с помощью вызова методов API
Для настройки авторизации по протоколу OAuth 2.0:
- Настройте авторизацию по протоколу OAuth 2.0 для варианта Авторизации в Личном кабинете.
- Настройте ассет для вашего проекта Unity.
Настройка авторизации по протоколу OAuth 2.0 для варианта Авторизации в Личном кабинете
- Перейдите к вашему проекту в Личном кабинете.
- Выберите пункт Авторизация в боковом меню.
- Нажмите Настроить в панели с вариантом авторизации.
- Перейдите к блоку Безопасность и выберите раздел OAuth 2.0 аутентификация.
- Нажмите Добавить OAuth 2.0.
- Укажите URI переадресации OAuth 2.0 и нажмите Подключить.
- Скопируйте и сохраните ID клиента.
Настройка ассета в вашем проекте Unity
- Перейдите к вашему проекту Unity.
- В главном меню выберите пункт
Window > Xsolla > Edit Settings . - В панели
Inspector :- В поле
Authorization Type выберитеOAuth2.0 . - В поле
OAuth2.0 client ID укажите ID клиента, полученный при настройке авторизации по протоколу OAuth 2.0 в Личном кабинете.
- В поле
Для работы с refresh-токенами в SDK реализованы следующие методы:
RefreshOAuthToken
— обновляет существующий токен, используя ранее сохраненный refresh-токен OAuth2.0.ExchangeCodeToToken
— обменивает код аутентификации пользователя на действительный JWT.
Для дополнительной проверки пользователя при авторизации по протоколу OAuth 2.0 в методе GetSocialNetworkAuthUrl
предусмотрен аргумент oauthState
. Этот аргумент используется для сдерживания возможных атак CSRF.
Была ли статья полезна?
Вы можете интегрировать SDK с собственной системой авторизации. В этом случае необходимо реализовать идентификацию пользователя по custom ID (ID пользователя, сформированный на вашем сервере) для открытия внутриигрового магазина, проведения платежа и управления инвентарем.
Сценарий взаимодействия c серверами Иксоллы при использовании собственной системы авторизации:
- Ваш клиент отправляет на ваш сервер запрос на аутентификацию.
- Ваш сервер аутентифицирует пользователя и отправляет на сервер Иксоллы запрос на получение JSON Web Token (JWT) пользователя, передавая custom ID.
- Сервер Иксоллы возвращает JWT пользователя.
- Ваш сервер передает JWT пользователя клиенту.
- Полученный JWT пользователя используется методами SDK вместо авторизационного токена для открытия внутриигрового магазина, проведения платежа и управления инвентарем.
Чтобы использовать собственную систему авторизации совместно с продуктами Иксоллы:
- В Личном кабинете настройте серверный OAuth 2.0-клиент.
- Реализуйте получение серверного JWT.
- Реализуйте получение JWT пользователя.
- Реализуйте логику работы с внутриигровым магазином, покупками и инвентарем с использованием JWT пользователя.
Настройка серверного OAuth 2.0-клиента
- Откройте ваш проект в Личном кабинете и перейдите в раздел Авторизация.
- Нажмите Настроить в панели нужного варианта авторизации.
- На странице навигации перейдите к блоку Безопасность и выберите раздел OAuth 2.0 аутентификация.
- Нажмите Добавить OAuth 2.0.
- Укажите URI переадресации OAuth 2.0.
- Установите флажок Серверная (соединение server-to-server).
- Нажмите Подключить.
- Скопируйте и сохраните ID клиента и секретный ключ.
Получение серверного JWT
В серверной части вашего приложения реализуйте метод для получения серверного JWT с использованием запроса Generate JWT. Запрос должен содержать следующие параметры:
grant_type
— тип JWT, передайте значениеclient_credentials
;client_secret
— секретный ключ OAuth 2.0-клиента, полученный при настройке серверного OAuth 2.0-клиента;client_id
— идентификатор OAuth 2.0-клиента, полученный при настройке серверного OAuth 2.0-клиента.
Получение JWT пользователя
В серверной части вашего приложения реализуйте метод для получения JWT пользователя с использованием запроса Auth by custom ID. Запрос должен содержать заголовок X-Server-Authorization: <server_JWT>
, где <server_JWT>
— серверный JWT, полученный на предыдущем шаге.
Использование JWT пользователя
Используйте методы SDK для открытия внутриигрового магазина, проведения платежа и управления инвентарем, при этом передайте JWT пользователя в свойство Token.Instance
.
Примеры использования токена приведены в сценариях:
- Продажа виртуальных предметов за реальную валюту.
- Продажа виртуальных предметов за виртуальную валюту.
- Отображение баланса виртуальной валюты.
- Отображение предметов в инвентаре.
Реализуйте получение нового JWT пользователя после истечения его срока жизни. Рекомендуется получать новый токен в фоновом режиме, без повторного входа пользователя в приложение.
Была ли статья полезна?
Нативная авторизация позволяет пользователям войти в ваше приложение с помощью аккаунта социальной сети, настроенного на мобильном устройстве.
При первом входе пользователя запускается приложение социальной сети, которое запрашивает разрешение на аутентификацию пользователя. В дальнейшем аутентификация будет выполняться автоматически, без участия пользователя.
В настоящее время для SDK реализована нативная авторизация через следующие социальные сети:
Чтобы настроить нативную авторизацию:
- Создайте сборку вашего проекта Unity под Android.
- Настройте приложение в личном кабинете разработчика социальной сети:
- Для авторизации через Facebook:
- Зарегистрируйтесь и создайте новое приложение.
- Настройте страницу приложения в личном кабинете разработчика Facebook.
- Для авторизации через Google настройте проект в Google API Console.
- Для авторизации через WeChat:
- Зарегистрируйтесь и создайте новое мобильное приложение.
- Отправьте приложение на проверку.
- Для авторизации через QQ:
- Зарегистрируйтесь и создайте новое мобильное приложение.
- Отправьте приложение на проверку.
- Для авторизации через Facebook:
- Настройте авторизацию через социальные сети на стороне Иксоллы:
- Для Facebook и Google настройте социальные сети в Личном кабинете.
- Для WeChat и QQ обратитесь к аккаунт-менеджеру проекта.
- Настройте ассет для вашего проекта Unity.
Создание сборки проекта Unity под Android
- Перейдите к вашему проекту Unity.
- В главном меню выберите пункт
File > Build settings . - В панели
Platform выберите пунктAndroid . - Нажмите
Build .
Для дальнейшей настройки нативной авторизации вам понадобятся:
- Название пакета, которое можно найти в поле
Package Name в панелиInspector после выбора платформыAndroid вFile > Build settings . - Имя класса Android — название главной Activity с указанием неймспейса приложения (например,
com.domain.appname.activity
). Имя класса можно найти вAndroidManifest.xml
. Тег главной Activity должен содержать тегintent-filter
с действиемandroid.intent.action.MAIN
и категориейandroid.intent.category.LAUNCHER
. - Хеш-ключ Android. Вы можете получить его с помощью OpenSSL.
Настройка страницы приложения в личном кабинете разработчика Facebook
- Перейдите к настройкам приложения в личном кабинете разработчика Facebook.
- Перейдите Настройки > Основное.
- Нажмите Добавить платформу и выберите Android.
- В поле Название пакета Google Play укажите название пакета из вашего проекта Unity.
- В поле Название класса укажите имя класса Android из вашего проекта Unity.
- В поле Ключевые хеш-адреса укажите хеш-ключ Android из вашего проекта Unity.
- Нажмите Сохранить изменения.
Для дальнейшей настройки нативной авторизации вам понадобятся Идентификатор приложения и Секрет приложения, которые можно найти в настройках приложения в разделе Настройки > Основное.
Настройка проекта в Google API Console
- Перейдите в Google API Console.
- Нажмите Создать проект.
- Укажите Название проекта и Местоположение, нажмите Создать.
- Перейдите в созданный проект и в боковом меню нажмите Окно запроса доступа OAuth.
- Установите флажок Внешнее и нажмите Создать.
- Укажите необходимые параметры и нажмите Сохранить.
- В боковом меню выберите Учетные данные.
- Создайте клиент OAuth 2.0 для вашего приложения на Unity:
- Нажмите Создать учетные данные и выберите Идентификатор проекта OAuth.
- В поле Тип приложения укажите Android.
- Укажите Имя.
- В поле Название пакета укажите имя пакета из вашего проекта Unity.
- В поле Контрольная сумма сертификата SHA-1 укажите хеш-ключ Android из вашего проекта Unity.
- Нажмите Создать.
- Нажмите OK.
- Создайте клиент OAuth 2.0 для веб-приложения:
- Нажмите Создать учетные данные и выберите пункт Идентификатор проекта OAuth.
- В поле Тип приложения укажите Веб-приложение.
- Укажите Имя.
- Нажмите Добавить URI в разделе Разрешенные URI перенаправления и укажите URI
https://login.xsolla.com/api/social/oauth2/callback
. - Нажмите Создать.
- Нажмите OK.
Для дальнейшей настройки нативной авторизации вам понадобятся Идентификатор клиента и Секретный код клиента, которые можно найти в настройках идентификатора клиента для веб-приложения.
Настройка социальных сетей для варианта авторизации в Личном кабинете Иксоллы
- Перейдите к вашему проекту в Личном кабинете.
- Нажмите Авторизация в боковом меню и перейдите в раздел Варианты авторизации > ваш вариант авторизации > Социальные сети.
- Для настройки авторизации через Facebook:
- Нажмите Редактировать в панели Facebook и измените статус на Отключен.
- В поле Application ID укажите Идентификатор приложения из личного кабинета разработчика Facebook.
- В поле Application Secret укажите Секрет приложения из личного кабинета разработчика Facebook.
- Нажмите Подключить.
- Для настройки авторизации через Google:
- Нажмите Редактировать в панели Google и измените статус на Отключен.
- В поле Application ID укажите Идентификатор клиента из Google API Console для веб-приложения.
- В поле Application Secret укажите Секретный код клиента из Google API Console для веб-приложения.
- Нажмите Подключить.
Настройка ассета для проекта Unity
- Перейдите к вашему проекту Unity.
- В главном меню выберите пункт
Window > Xsolla > Edit Settings . - Укажите идентификатор приложения:
- В поле
Facebook App ID укажите Идентификатор приложения из личного кабинета разработчика Facebook. - В поле
Google server ID укажите Идентификатор клиента из Google API Console для веб-приложения. - В поле
WeChat App ID укажите AppID из настроек приложения WeChat. - В поле
QQ App ID укажите AppID из настроек приложения QQ.
- В поле
Была ли статья полезна?
Нативная авторизация позволяет игрокам войти в ваше приложение через установленное приложение Steam.
Чтобы настроить нативную авторизацию:
- Подключите автоматическую аутентификацию через Steam в Личном кабинете.
- Настройте ваш проект Unity.
- Настройте обработку событий.
- Проверьте авторизацию через Steam.
Настройка проекта Unity
- Создайте файл
steam_appid.txt
, впишите в него ID вашего приложения в Steam и поместите его в каталогAssets/Plugins/Steamworks.NET/redist/
вашего проекта.
Assets/Plugins/Steamworks.NET/redist/
уже создан файл steam_appid.txt
Steam для демопроекта.- Откройте ваш проект Unity.
- В главном меню выберите пункт
Window > Xsolla > Demo Settings . - В панели
Inspector :- Установите флажок
Use Steam authorization . - В поле
Steam App ID укажите ID вашего приложения в Steam. Значение должно совпадать со значением, указанным в файлеsteam_appid.txt
.
- Установите флажок
Настройка обработки событий
Для аутентификации пользователей через Steam необходимо передать session ticket
в метод SilentAuth
. В качестве примера см. класс SteamAuth.cs
в демопроекте.
Проверка авторизации через Steam
- Создайте сборку вашего проекта Unity для stand-alone платформы.
- Запустите приложение Steam и авторизуйтесь в нем.
- Запустите ваше приложение. Если настройка выполнена правильно, вы автоматически авторизуетесь в приложении.
Была ли статья полезна?
Инвалидация токена позволяет повысить безопасность данных авторизации пользователя в вашем приложении. При включении настройки, с каждым входом пользователя в систему его предыдущий токен доступа становится недействительным и генерируется новый токен.
При использовании SDK инвалидация существующего токена и генерация нового выполняется при вызове методов API with_logout
указано значение 1
.
Для включения инвалидации токена в вашем проекте Unity:
- В главном меню выберите пункт
Window > Xsolla > Edit Settings . - Перейдите в панель
Inspector . В полеAuthorizaton Type выберитеJWT и установите флажокInvalidate Existing Sessions .
Была ли статья полезна?
Для доставки вашего приложения пользователям и его обновления вы можете использовать Лаунчер Иксоллы. Лаунчер содержит встроенный инструмент авторизации. Чтобы избежать необходимости повторного ввода имени пользователя и пароля, настройте авторизацию в вашем приложении через Лаунчер.
Настройка совместной работы SDK и Лаунчера
- Настройте Лаунчер в Личном кабинете.
config.json
достаточно изменить значения для следующих объектов:launcher_project_id
— укажите ID лаунчера, который можно найти в разделе Лаунчер > Общие настройки > Общая информация Личного кабинета;login_project_id
— укажите ID варианта авторизации, который можно найти в разделе Лаунчер > Общие настройки > Настройки аутентификации Личного кабинета.
- Реализуйте в вашем приложении логику авторизации через Лаунчер.
- Сгенерируйте установочный файл лаунчера и архив с его сборкой.
- Создайте сборку приложения.
- Загрузите сборку приложения на сервер обновлений Иксоллы.
Реализация логики авторизации через Лаунчер
Сценарий авторизации в приложении через Лаунчер:
- Пользователь авторизуется в Лаунчере.
- Пользователь устанавливает и запускает приложение.
- Лаунчер запускает приложение с передачей параметров пользователя через командную строку. Токен для авторизации передается в параметре
xsolla-login-token
. - Приложение обрабатывает параметры командной строки и получает токен. Пример скрипта обработки токена приведен в демопроекте.
- Приложение валидирует полученный токен. Пример скрипта валидации токена приведен в демопроекте.
- Приложение автоматически авторизует пользователя, не отображая страницу авторизации. Пример скрипта авторизации пользователя приведен в демопроекте.
Token.Instance
.Создание сборки приложения
- Откройте ваш проект Unity.
- В главном меню выберите пункт
Window > Xsolla > Edit Settings . В панелиInspector :- В поле
Project ID укажите ID проекта, который можно найти в разделе Настройки проекта > ID проекта Личного кабинета. - В поле
Login ID укажите ID варианта авторизации, который можно найти в разделе Лаунчер > Общие настройки > Настройки аутентификации Личного кабинета.
- В поле
- Запустите сцену авторизации пользователя, в которой выполняется обработка токена.
- В главном меню выберите пункт
File > Build settings и нажмитеAdd Open Scenes . Убедитесь, что сцена авторизации добавлена первой в списке. - Нажмите
Build . - Во всплывающем окне укажите путь к директории, в которую будет помещена готовая сборка.
Была ли статья полезна?
Авторизация по ID устройства позволяет пользователям начать работу с приложением на мобильном устройстве без ввода данных для регистрации. При первом входе в приложение по ID устройства новый аккаунт создается автоматически, при этом пользователю не требуется вводить имя пользователя, email-адрес или другие данные.
С помощью ID устройства вы можете реализовать авторизацию пользователя на одном или нескольких мобильных устройствах в фоновом режиме. Для этого пользователю потребуется привязать к уже существующему аккаунту ID устройства.
SDK поддерживает авторизацию по ID мобильных устройств на платформах Android и iOS.
Получение ID устройства
ID устройства генерируется платформой и доступно приложениям, установленным на мобильном устройстве. SDK получает значение ID с помощью API платформы и использует это значение для выполнения различных функций с помощью API Иксоллы.
ID iOS-устройства передается в свойстве UIDevice.identifierForVendor. Для определения ID используется стандартный метод Unity SystemInfo.deviceUniqueIdentifier.
ID Android-устройства передается в константе android.provider.Settings.Secure.ANDROID_ID. Для определения ID используется собственная логика SDK, потому что стандартный метод Unity возвращает ID Android-устройства в виде MD5 хеш-кода, который не подходит для методов API Иксоллы.
Методы SDK
В SDK реализованы методы для выполнения следующих функций:
Аутентификация
Название метода SDK | Описание |
---|---|
AuthViaDeviceID | Аутентифицирует пользователя в приложении с помощью ID текущего устройства. |
Обновление аккаунта
Название метода SDK | Описание |
---|---|
AddUsernameEmailAuthToAccount | Добавляет к текущему аккаунту имя пользователя, email-адрес и пароль, которые можно использовать для аутентификации. |
LinkSocialProvider | Привязывает к текущему аккаунту социальную сеть, которую можно использовать для аутентификации. |
Управление устройствами
Название метода SDK | Описание |
---|---|
GetUserDevices | Возвращает список устройств, привязанных к текущему аккаунту пользователя. |
LinkDeviceToAccount | Привязывает указанное устройство к текущему аккаунту пользователя. |
UnlinkDeviceFromAccount | Удаляет привязку указанного устройства к текущему аккаунту пользователя. |
Была ли статья полезна?
Нашли опечатку или ошибку в тексте? Выделите ее и нажмите Ctrl+Enter.