Вход

Метод используется для входа в Панель управления Клиента с использованием учетных данных пользователя (см. ) и встроенного метода аутентификации (см. users_sign_on_method в Получение настроек реселлера и ). Альтернативный способ входа см. в Вход через стороннюю IDM (OAuth).

Для успешного входа должны выполняться все следующие условия:

  • Глобальный статус пользователя Активный (см. ).

  • Email пользователя подтвержден.

  • Количество неуспешных попыток входа и интервал между попытками соответствуют настройкам безопасности реселлера (см. ).

  • Период действия пароля пользователя не истек (см. ).

  • Если для пользователей аккаунта включено обязательное использование MFA (см. Получение информации об аккаунте) и у пользователя еще нет настроенных методов MFA (см. Получение информации о текущем пользователе) — метод MFA настроен в процессе входа.

  • Если у пользователя уже есть настроенный метод MFA (см. Получение информации о текущем пользователе) — успешно пройден второй шаг аутентификации с использованием настроенного метода MFA.

От настроек MFA зависит ответ метода и может требоваться второй шаг аутентификации с повторным вызовом метода. Конечным результатом использования метода является предоставление пользователю набора токенов для дальнейшей работы.

Этот же метод используется для принятия приглашения и входа в Панель управления Клиента определенного аккаунта, если приглашение было отправлено существующему пользователю (см. action = sign_in в Приглашение пользователя).

POST {reseller_domain}/internal_api/sign_in

В этой статье:

Авторизация

Авторизация не требуется.

Аргументы

Название

Тип параметра

Тип данных

Обязательный/ 
Опциональный

Описание

Content-Type

header

string

Обязательный

Тип данных, передаваемых в запросе. Укажите application/vnd.api+json

Accept

header

string

Обязательный

Поддерживаемые типы данных в ответе. Укажите application/vnd.api+json

X-Api-Locale

header

string

Опциональный

Двухбуквенный код языка данных в ответе

reseller_domain

path

string

Обязательный

Доменное имя реселлера

email

form

string

Обязательный

Email пользователя, который используется как логин для входа в Панель управления Клиента

password

form

string

Обязательный

Пароль пользователя для входа в Панель управления Клиента

remember_me

form

bool

Обязательный

Признак Запомнить меня (см. ):

  • true — признак установлен, что соответствует периоду действия токенов пользователя 1 месяц.

  • false — признак не установлен, что соответствует периоду действия токенов пользователя 1 день.

См. также Обновление токенов

invitation_token

form

string

Опциональный

Токен из приглашения. Значения email и invitation_token должны быть из одного приглашения. Используется только для принятия приглашения и входа в Панель управления Клиента определенного аккаунта, если приглашение было отправлено существующему пользователю (см. action = sign_in в Приглашенные пользователи)

captcha_token

form

string

Опциональный

Токен пользователя, полученный от reCAPTCHA после нажатия кнопки входа. Обязательный, если в настройках кастомизации задано use_captcha_service = true (см. Получение настроек кастомизации)

mfa

form

object

Опциональный

Параметры MFA. Указываются только на втором шаге аутентификации, который присутствует при выполнении хотя бы одного из следующих условий:


key

form

string

Опциональный

Ключ метода MFA, выбранного для входа:

  • authenticator — приложение для аутентификации.

  • backup_code — один из резервных кодов.


remember_mfa

form

bool

Опциональный

Признак Запомнить это устройство (см. ):

  • true — признак установлен, код MFA не будет запрашиваться в течение заданного периода (см. ).

  • false — признак не установлен, код MFA будет запрашиваться при следующем входе.


params

form

object

Опциональный

Параметры метода MFA, выбранного для входа



code

form

string

Опциональный

Код, сгенерированный выбранным методом MFA (например, временный код, отображаемый в приложении для аутентификации, или один из резервных кодов)



manual_secret

form

string

Опциональный

Код для ручной настройки выбранного метода MFA, полученный на первом шаге аутентификации. Указывается, если в процессе входа пользователь настраивает выбранный метод MFA

Модель ответа

Требуется второй шаг аутентификации

Название

Тип данных

Описание

status

string

Имеет значение mfa_required — требуется второй шаг аутентификации

mfa_methods

object

Список поддерживаемых методов MFA


key

string

Ключ метода MFA:

  • authenticator — приложение для аутентификации.


exist

bool

Признак настроенного метода MFA у пользователя (см. Получение информации о текущем пользователе):

  • true — метод MFA настроен у пользователя.

  • false — метод MFA не настроен у пользователя.


params

object

Параметры для настройки метода MFA. Возвращаются, если метод MFA не настроен у пользователя



manual_secret

string

Код для ручной настройки метода MFA. Это значение необходимо указать в теле запроса при повторном вызове метода



url

string

Ссылка для QR-кода

Успешный вход

Название

Тип данных

Описание

jwt_refresh

cookie

Refresh token пользователя

remember_mfa

cookie

Куки для запоминания устройства, если при входе с MFA было указано remember_mfa = true

status

string

Имеет значение login_success — успешный вход

access

string

Access token пользователя

csrf

string

CSRF token пользователя

refresh_expires_at

string

Дата истечения refresh token пользователя

account_id

integer

ID аккаунта, к которому присоединился пользователь. Присутствует в ответе, если в запросе указан invitation_token

mfa

object

Параметры MFA. Присутствует в ответе, если пользователь настроил метод MFA на втором шаге


backup_codes

array of strings

10 одноразовых резервных кодов

Пример входа без MFA

Запрос

Bash
curl --location --request POST 'https://test.activeplatform.com/internal_api/sign_in' \
--header 'Content-Type: application/vnd.api+json' \
--header 'Accept: application/vnd.api+json' \
--header 'X-Api-Locale: en' \
--data-raw '{
    "data": {
        "attributes": {
            "email": "user@example.com",
            "password": "12345678",
            "remember_me": true
        }
    }
}'

Ответ

JSON
Cookie: jwt_refresh=refreshTokenExample
 
{
    "access": "accessTokenExample",
    "csrf": "csrfTokenExample==",
    "refresh_expires_at": "2023-01-01T12:34:56.000+00:00",
    "status": "login_success"
}

Пример входа с MFA, пользователь настраивает метод MFA на втором шаге

Запрос №1

Bash
curl --location --request POST 'https://test.activeplatform.com/internal_api/sign_in' \
--header 'Content-Type: application/vnd.api+json' \
--header 'Accept: application/vnd.api+json' \
--header 'X-Api-Locale: en' \
--data-raw '{
    "data": {
        "attributes": {
            "email": "user@example.com",
            "password": "12345678",
            "remember_me": true
        }
    }
}'

Ответ №1

JSON
{
  "status": "mfa_required",
  "mfa_methods": [
    {
      "key": "authenticator",
      "exist": false,
      "params": {
        "manual_secret": "ABC123",
        "url": "otpauth://totp/XXX"
      }
    }
  ]
}

Запрос №2

Bash
curl --location --request POST 'https://test.activeplatform.com/internal_api/sign_in' \
--header 'Content-Type: application/vnd.api+json' \
--header 'Accept: application/vnd.api+json' \
--header 'X-Api-Locale: en' \
--data-raw '{
    "data": {
        "attributes": {
            "email": "user@example.com",
            "password": "12345678",
            "remember_me": true,
            "mfa": {
            	"key": "authenticator",
            	"remember_mfa": true,
            	"params": {
                 	"code": "123456",
                	"manual_secret": "ABC123"
                }
			}
    	}
  	}
}'

Ответ №2

JSON
Cookie:
jwt_refresh=refreshTokenExample
remember_mfa=refreshTokenExample
 
{
    "access": "accessTokenExample",
    "csrf": "csrfTokenExample==",
    "refresh_expires_at": "2023-01-01T12:34:56.000+00:00",
    "status": "login_success",
    "mfa": {
        "backup_codes": [
            "b4c3da4f",
            "48a330cf",
            "7e3558ee",
            "676bd770",
            "661bcdfb",
            "7ada89f9",
            "800734a1",
            "73864b07",
            "88a55dd0",
            "76923f9e"
        ]
    }
}

Пример входа с MFA, у пользователя есть настроенный метод MFA

Запрос №1

Bash
curl --location --request POST 'https://test.activeplatform.com/internal_api/sign_in' \
--header 'Content-Type: application/vnd.api+json' \
--header 'Accept: application/vnd.api+json' \
--header 'X-Api-Locale: en' \
--data-raw '{
    "data": {
        "attributes": {
            "email": "user@example.com",
            "password": "12345678",
            "remember_me": true
        }
    }
}'

Ответ №1

JSON
{
  "status": "mfa_required",
  "mfa_methods": [
    {
      "key": "authenticator",
      "exist": true,
      "params": {}
    }
  ]
}

Запрос №2

Bash
curl --location --request POST 'https://test.activeplatform.com/internal_api/sign_in' \
--header 'Content-Type: application/vnd.api+json' \
--header 'Accept: application/vnd.api+json' \
--header 'X-Api-Locale: en' \
--data-raw '{
    "data": {
        "attributes": {
            "email": "user@example.com",
            "password": "12345678",
            "remember_me": true,
            "mfa": {
            	"key": "authenticator",
            	"remember_mfa": true,
            	"params": {
                 	"code": "123456",
                	"manual_secret": null
                }
			}
    	}
  	}
}'

Ответ №2

JSON
Cookie:
jwt_refresh=refreshTokenExample
remember_mfa=refreshTokenExample
 
{
    "access": "accessTokenExample",
    "csrf": "csrfTokenExample==",
    "refresh_expires_at": "2023-01-01T12:34:56.000+00:00",
    "status": "login_success"
}