Авторизация
Операции авторизации создают пользовательскую сессию, помогают войти через социальные провайдеры или завершить текущий сеанс.
Вход по логину и паролю
login
Описание
Авторизует пользователя по email или игровому логину и возвращает сессию личного кабинета.
Входные данные
| Поле | Тип | Обязательный | Описание |
|---|---|---|---|
login | String! | ✓ | Email или логин |
password | String! | ✓ | Пароль |
rememberMe | Boolean | - | Продленная сессия |
utm | JSON | - | UTM-метки |
launcher | Int | - | ID лаунчера |
Результат
Тип ответа - LoginResult.
Ошибки
METHOD_DISABLED- выбранный способ входа отключен в проекте.INVALID_CREDENTIALS- логин или пароль неверные.TOO_MANY_ATTEMPTS- превышен лимит попыток входа.USER_BANNED- аккаунт заблокирован.
Защита проекта учитывает короткий поток запросов с IP, сочетание IP и логина, один логин с разных IP и перебор неизвестных логинов. User-Agent не используется как доверенная граница. При ограничении extensions.retryAfterSeconds содержит точное время ожидания.
Пример обмена
{
"documentId": "login",
"variables": {
"login": "GameLogin",
"password": "password123",
"rememberMe": true,
"utm": {
"source": "site",
"medium": "web",
"campaign": "launch"
},
"launcher": 1
}
}
{
"data": {
"login": {
"sessionId": "session-token",
"user": {
"id": "1001",
"selectedServerId": 1
}
}
}
}
Связанные типы
loginGameAccount
Описание
Авторизует пользователя по логину и паролю игрового аккаунта.
Входные данные
| Поле | Тип | Обязательный | Описание |
|---|---|---|---|
login | String! | ✓ | Логин игрового аккаунта |
password | String! | ✓ | Пароль игрового аккаунта |
serverId | Int! | ✓ | ID сервера |
utm | JSON | - | UTM-метки |
Результат
Тип ответа - LoginResult.
Ошибки
INVALID_CREDENTIALS- логин или пароль неверные.USER_NOT_FOUND- мастер-аккаунт не найден.METHOD_DISABLED- вход через игровой аккаунт отключен в проекте.TOO_MANY_ATTEMPTS- превышен лимит попыток входа.USER_BANNED- аккаунт заблокирован.
Пример обмена
{
"documentId": "loginGameAccount",
"variables": {
"login": "GameLogin",
"password": "password123",
"serverId": 1,
"utm": {}
}
}
{
"data": {
"loginGameAccount": {
"sessionId": "session-token",
"user": {
"id": "1001",
}
}
}
}
Связанные типы
loginPasskey
Описание
Завершает вход через passkey/WebAuthn assertion.
Входные данные
| Поле | Тип | Обязательный | Описание |
|---|---|---|---|
assertion | JSON! | ✓ | Ответ WebAuthn |
utm | JSON | - | UTM-метки |
Результат
Тип ответа - LoginResult.
Ошибки
PASSKEY_INVALID_ASSERTION- ответ WebAuthn неверный.PASSKEY_NOT_FOUND- соответствующий passkey не найден.USER_NOT_FOUND- пользователь не найден.TOO_MANY_ATTEMPTS- превышен лимит попыток входа.
Пример обмена
{
"documentId": "loginPasskey",
"variables": {
"assertion": {},
"utm": {}
}
}
{
"data": {
"loginPasskey": {
"sessionId": "session-token",
"user": {
"id": "1001"
}
}
}
}
Связанные типы
URL входа через соцсеть
socialAuthUrl
Описание
Возвращает URL перенаправления на внешний OAuth-провайдер.
Входные данные
| Поле | Тип | Обязательный | Описание |
|---|---|---|---|
provider | String! | ✓ | Код провайдера: google, discord, vk и другие подключенные соцсети |
Результат
Тип ответа - SocialAuthUrl с URL перенаправления и кодом провайдера.
Ошибки
SOCIAL_PROVIDER_DISABLED- провайдер не настроен или отключен в проекте.
Пример обмена
{
"documentId": "socialAuthUrl",
"variables": {
"provider": "google"
}
}
{
"data": {
"socialAuthUrl": {
"url": "https://project.example/auth/google",
"provider": "google"
}
}
}
Связанные типы
Вход по коду
sendMagicCode
Описание
Отправляет одноразовый код входа на email пользователя.
Входные данные
| Поле | Тип | Обязательный | Описание |
|---|---|---|---|
email | String! | ✓ | Email пользователя |
gameServerId | Int | - | Сервер, в контексте которого выполняется вход |
Результат
Тип ответа - OperationResult.
Ошибки
METHOD_DISABLED- вход по коду отключен в проекте.MAGIC_CODE_ALREADY_SENT- новый код запрошен до окончания интервала повторной отправки.
Пример обмена
{
"documentId": "sendMagicCode",
"variables": {
"gameServerId": 1
}
}
{
"data": {
"sendMagicCode": {
"message": "Код для входа отправлен"
}
}
}
Связанные типы
loginMagicCode
Описание
Подтверждает одноразовый код и создает пользовательскую сессию.
Входные данные
| Поле | Тип | Обязательный | Описание |
|---|---|---|---|
email | String! | ✓ | Email пользователя |
code | String! | ✓ | Одноразовый код |
gameServerId | Int | - | Сервер входа |
utm | JSON | - | UTM-метки |
Результат
Тип ответа - LoginResult.
Ошибки
METHOD_DISABLED- вход по коду отключен в проекте.MAGIC_CODE_EXPIRED- код неверный или истек.TOO_MANY_ATTEMPTS- превышен лимит попыток подтверждения.USER_BANNED- аккаунт заблокирован.
Пример обмена
{
"documentId": "loginMagicCode",
"variables": {
"code": "123456",
"gameServerId": 1,
"utm": {
"source": "site",
"medium": "web",
"campaign": "launch"
}
}
}
{
"data": {
"loginMagicCode": {
"sessionId": "session-token",
"user": {
"id": "1001",
}
}
}
}
Связанные типы
Вход по ссылке
sendMagicLink
Описание
Отправляет на email ссылку для входа без пароля.
Входные данные
| Поле | Тип | Обязательный | Описание |
|---|---|---|---|
email | String! | ✓ | Email пользователя |
gameServerId | Int | - | Сервер входа |
Результат
Тип ответа - OperationResult.
Ошибки
METHOD_DISABLED- вход по ссылке отключен в проекте.MAGIC_LINK_ALREADY_SENT- новая ссылка запрошена до окончания интервала повторной отправки.
Пример обмена
{
"documentId": "sendMagicLink",
"variables": {
"gameServerId": 1
}
}
{
"data": {
"sendMagicLink": {
"message": "Ссылка для входа отправлена"
}
}
}
Связанные типы
loginMagicLink
Описание
Подтверждает токен из magic link и возвращает сессию пользователя.
Входные данные
| Поле | Тип | Обязательный | Описание |
|---|---|---|---|
token | String! | ✓ | Токен из ссылки |
email | String! | ✓ | Email пользователя |
gameServerId | Int | - | Сервер входа |
utm | JSON | - | UTM-метки |
Результат
Тип ответа - LoginResult.
Ошибки
METHOD_DISABLED- вход по ссылке отключен в проекте.MAGIC_LINK_EXPIRED- токен неверный или истек.TOO_MANY_ATTEMPTS- превышен лимит попыток подтверждения.USER_BANNED- аккаунт заблокирован.
Пример обмена
{
"documentId": "loginMagicLink",
"variables": {
"token": "magic-token",
"gameServerId": 1,
"utm": {
"source": "site",
"medium": "web",
"campaign": "launch"
}
}
}
{
"data": {
"loginMagicLink": {
"sessionId": "session-token",
"user": {
"id": "1001",
}
}
}
}
Связанные типы
Выход
logout
Описание
Завершает текущую пользовательскую сессию.
Входные данные
Операция не принимает переменные.
Результат
Тип ответа - OperationResult.
Если сессия отсутствует или уже завершена, операция также возвращает сообщение о завершении.
Пример обмена
{
"documentId": "logout",
"variables": {}
}
{
"data": {
"logout": {
"message": "Сессия завершена"
}
}
}