Вход пользователя¶
Схема процесса входа¶
Во время проверки пароля или OTP пользователь также должен принять соглашения, если это требуется. Отдельный вызов auth/acceptdisclaimers используется только при входе через OAuth.
Проверить идентификатор для входа¶
-
POST/(company_code)/v2/auth/login¶ Вход пользователя (проверка идентификатора для входа)
Проверяет идентификатор для входа пользователя (может быть основным телефоном, основной электронной почтой или отдельным именем для входа в зависимости от роли пользователя) и возвращает временный сессионный токен для дальнейшей аутентификации. Этот токен возвращается в поле ответа
session_tokenи должен быть использован при обращении к соответствующим вызовам аутентификации.Если профиль пользователя по указанному идентификатору для входа не найден, возвращает код ошибки
auth.loginid.notfoundсо статусом HTTP 404.Если авторизация пользователя по указанному идентификатору для входа запрещена, возвращает код ошибки
auth.user.restrictedсо статусом HTTP 403.Если профиль пользователя по указанному идентификатору для входа закрыт, возвращает код ошибки
auth.user.closedсо статусом HTTP 403.Если для указанного идентификатора для входа в сервисе административно отказано, возвращает код ошибки
auth.user.deniedсо статусом HTTP 403.Если у профиля пользователя установлен пароль, поле ответа
session_stateбудет содержатьcheckpassword. Клиентскому приложению следует далее использовать вызовauth/checkpassword, передавая полученный сессионный токен.Если у профиля пользователя не установлен пароль, поле ответа
session_stateбудет содержатьcheckotp. Клиентскому приложению следует далее использовать вызовauth/checkotp, передавая полученный сессионный токен и введенный пользователем одноразовый код (OTP).Если пользователь должен принять юридические соглашения, массив ответа
disclaimers_requiredбудет содержать данные требуемых соглашений. Вызовыauth/checkpasswordиauth/checkotpне будут выполнены успешно, если передаваемый список принятых соглашений не будет содержать коды всех требуемых соглашений.JSON-объект запроса: - login_id (string) – Идентификатор для входа пользователя (основной телефон, основная электронная почта или отдельное имя для входа)
JSON-объект ответа: - status (string) –
successилиerror - error_code (string) – (Необязательно) Если
statusсодержитerror: один из перечисленных ниже кодов ошибки - session_token (string) – Сессионный токен пользователя
- session_state (string) – Состояние сессии пользователя:
checkpasswordилиcheckotp. См. Пользовательские сессии - disclaimers_required (array) – Массив объектов данных юридических соглашений, которые пользователь должен принять
- captcha_required (boolean) – (Необязательно) Если
session_stateсодержитcheckpassword:trueесли у следующего запроса должно быть установлено полеcaptcha_response - user_phone (string) – (Необязательно) Если
session_stateсодержитcheckotp: маскированный номер телефона пользователя
Поля соглашений
Каждый член массива ответа
disclaimers_requiredэто объект со следующими полями:Имя поля Тип Допускает null Описание code string Нет Код соглашения title string Нет Название соглашения для отображения description string Нет Краткое описание соглашения link string Нет URL ссылки на текст юридического соглашения Используемые коды ошибки
- auth.apikey.missing
- auth.apikey.invalid
- auth.loginid.notfound
- auth.user.restricted
- auth.user.closed
- auth.user.denied
- auth.restricted
- request.validation.failed
Подробнее см. Коды ошибок.
Проверить пароль¶
-
POST/(company_code)/v2/auth/checkpassword¶ Проверить пароль пользователя для аутентификации
Если передан неверный пароль, возвращается код ошибки
auth.password.invalid. Если было несколько предыдущих неудачных попыток, поле ответаcaptcha_requiredустанавливается вtrue. Дальнейшие запросы этого вызова должны включать полеcaptcha_response, содержащее правильный ответ Recaptcha.Если пользователь должен принять юридические соглашения, для успешного выполнения этого вызова массив запроса
accept_disclaimersдолжен содержать коды всех требуемых соглашений. Иначе возвращается код ошибкиauth.disclaimer.invalid, а поле ответаdisclaimers_requiredсодержит массив требуемых соглашений.Если требуется проверка второго фактора, будет возвращен временный сессионный токен с состоянием сессии
checkotp. Далее клиенту следует использовать вызов APIauth/checkotpс полученным временным сессионным токеном. Поле ответаuser_phoneбудет содержать маскированный номер телефона для проверки SMS.Если пользователь должен установить новый пароль, будет возвращен временный сессионный токен с состоянием сессии
setpassword. Далее клиенту следует использовать вызов APIauth/setpasswordс полученным временным сессионным токеном.Если никаких дальнейших действий по авторизации не требуется, у возвращаемого сессионного токена будет состояние сессии
authorized. Поле ответаprofile_mnemocodeбудет содержать мнемокод профиля пользователя для связанных с профилем вызовов API.Заголовки запроса: - Authorization –
Bearer <сессионный_токен>(состояние сессии должно бытьcheckpassword)
JSON-объект запроса: - password (string) – Введенный пользователем пароль
- captcha_response (string) – (Необязательно) Ответный токен captcha пользователя в виде, предоставленном Recaptcha
- accept_disclaimers (array) – (Необязательно) Массив строковых кодов соглашений, принятых пользователем
JSON-объект ответа: - status (string) –
successилиerror - error_code (string) – (Необязательно) Если
statusсодержитerror: один из перечисленных ниже кодов ошибки - captcha_required (boolean) – (Необязательно) Если
statusсодержитerror:trueесли у следующего запроса должно быть установлено полеcaptcha_response - disclaimers_required (array) – (Необязательно) Если
statusсодержитerror: Массив объектов данных юридических соглашений, которые нужно принять пользователю - session_token (string) – Сессионный токен пользователя
- session_state (string) – Состояние сессии пользователя:
checkotp,setpasswordилиauthorized. См. Пользовательские сессии - profile_mnemocode (string) – (Необязательно) Если
session_stateсодержитauthorized: Мнемокод профиля пользователя - user_phone (string) – (Необязательно) Если
session_stateсодержитcheckotp: маскированный номер телефона пользователя - password_regex (string/null) – (Необязательно) Если
session_stateсодержитsetpassword: Регулярное выражение для проверки качества пароля (проверка отключена, еслиnull) - password_regex_description (string/null) – (Необязательно) Если
session_stateсодержитsetpassword: Текст описания для проверки качества пароля
Поля соглашений
Каждый член массива ответа
disclaimers_requiredэто объект со следующими полями:Имя поля Тип Допускает null Описание code string Нет Код соглашения title string Нет Название соглашения для отображения description string Нет Краткое описание соглашения link string Нет URL ссылки на текст юридического соглашения Используемые коды ошибки
- auth.apikey.missing
- auth.apikey.invalid
- auth.header.missing
- auth.header.invalid
- auth.token.invalid
- auth.token.expired
- auth.session.invalid
- auth.user.restricted
- auth.user.closed
- auth.user.denied
- auth.captcha.missing
- auth.captcha.invalid
- auth.password.invalid
- auth.disclaimer.invalid
- auth.restricted
- request.validation.failed
Подробнее см. Коды ошибок.
- Authorization –
Проверить OTP¶
-
POST/(company_code)/v2/auth/checkotp¶ Проверить одноразовый код для аутентификации
При аутентификации с OTP на основной номер телефона пользователя высылается одноразовый код (OTP). Ответ API включает поле
user_phone, содержащее маскированный номер телефона пользователя. Введенный пользователем код должен быть передан этому вызову в поле запросаotp. Если передан неверный код, возвращается код ошибкиauth.otp.invalid. Перед повторной попыткой этого вызова нужно использовать вызовauth/renewotpдля отправки нового кода.Если у пользователя нет доступа к телефону, они могут выбрать использовать вместо кода из SMS заранее сгенерированный резервный код. Этот код должен быть передан в поле запроса
backup_code. Если передан неверный код, возвращается код ошибкиauth.backupcode.invalid.Если пользователь должен принять юридические соглашения, для успешного выполнения этого вызова массив запроса
accept_disclaimersдолжен содержать коды всех требуемых соглашений. Иначе возвращается код ошибкиauth.disclaimer.invalid, а поле ответаdisclaimers_requiredсодержит массив требуемых соглашений. Перед повторной попыткой этого вызова нужно использовать вызовauth/renewotpдля отправки нового одноразового кода.Если пользователь должен установить новый пароль, будет возвращен временный сессионный токен с состоянием сессии
setpassword. Далее клиенту следует использовать вызов APIauth/setpasswordс полученным временным сессионным токеном.Если никаких дальнейших действий по авторизации не требуется, у возвращаемого сессионного токена будет состояние сессии
authorized. Поле ответаprofile_mnemocodeбудет содержать мнемокод профиля пользователя для связанных с профилем вызовов API.Заголовки запроса: - Authorization –
Bearer <сессионный_токен>(состояние сессии должно бытьcheckotp)
JSON-объект запроса: - otp (string) – (Необязательно) Введенный пользователем одноразовый код из SMS
- backup_code (string) – (Необязательно) Введенный пользователем резервный код
- accept_disclaimers (array) – (Необязательно) Массив строковых кодов соглашений, принятых пользователем
JSON-объект ответа: - status (string) –
successилиerror - error_code (string) – (Необязательно) Если
statusсодержитerror: один из перечисленных ниже кодов ошибки - disclaimers_required (array) – (Необязательно) Если
statusсодержитerror: Массив объектов данных юридических соглашений, которые нужно принять пользователю - session_token (string) – Сессионный токен пользователя
- session_state (string) – Состояние сессии пользователя:
setpasswordилиauthorized. См. Пользовательские сессии - profile_mnemocode (string) – (Необязательно) Если
session_stateсодержитauthorized: Мнемокод профиля пользователя - password_regex (string/null) – (Необязательно) Если
session_stateсодержитsetpassword: Регулярное выражение для проверки качества пароля (проверка отключена, еслиnull) - password_regex_description (string/null) – (Необязательно) Если
session_stateсодержитsetpassword: Текст описания для проверки качества пароля
Поля соглашений
Каждый член массива ответа
disclaimers_requiredэто объект со следующими полями:Имя поля Тип Допускает null Описание code string Нет Код соглашения title string Нет Название соглашения для отображения description string Нет Краткое описание соглашения link string Нет URL ссылки на текст юридического соглашения Используемые коды ошибки
- auth.apikey.missing
- auth.apikey.invalid
- auth.header.missing
- auth.header.invalid
- auth.token.invalid
- auth.token.expired
- auth.session.invalid
- auth.user.restricted
- auth.user.closed
- auth.user.denied
- auth.otp.invalid
- auth.backupcode.invalid
- auth.disclaimer.invalid
- auth.restricted
- request.validation.failed
Подробнее см. Коды ошибок.
- Authorization –
Обновить OTP¶
-
POST/(company_code)/v2/auth/renewotp¶ Обновить одноразовый код для аутентификации
На основной номер телефона пользователя высылается новый одноразовый код (OTP). Поле ответа
user_phoneсодержит маскированный номер телефона пользователя.Заголовки запроса: - Authorization –
Bearer <сессионный_токен>(состояние сессии должно бытьcheckotp)
JSON-объект ответа: - status (string) –
successилиerror - error_code (string) – (Необязательно) Если
statusсодержитerror: один из перечисленных ниже кодов ошибки - user_phone (string) – Маскированный номер телефона пользователя
Используемые коды ошибки
- auth.apikey.missing
- auth.apikey.invalid
- auth.header.missing
- auth.header.invalid
- auth.token.invalid
- auth.token.expired
- auth.session.invalid
- auth.user.restricted
- auth.user.closed
- auth.user.denied
- request.validation.failed
Подробнее см. Коды ошибок.
- Authorization –
Установить пароль¶
-
POST/(company_code)/v2/auth/setpassword¶ Установить или изменить пароль пользователя
Этот вызов используется в процессе авторизации или восстановления доступа, когда аутентифицированному пользователю нужно установить новый пароль.
При использовании в процессе авторизации (состояние сессии
setpassword), будет возвращен новый сессионный токен со состоянием сессииauthorized. Поле ответаprofile_mnemocodeбудет содержать мнемокод профиля пользователя.При использовании в процессе восстановления доступа (состояние сессии
recovery-setpassword), новый сессионный токен возвращен не будет. Клиентскому приложению следует далее использовать вызовauth/loginдля авторизации пользователя с восстановленным доступом.Если качество переданного нового пароля слишком низкое, возвращает код ошибки
request.validation.failedсо статусом HTTP 422.Заголовки запроса: - Authorization –
Bearer <сессионный_токен>(состояние сессии должно бытьsetpasswordилиrecovery-setpassword)
JSON-объект запроса: - new_password (string) – Новый пароль пользователя
JSON-объект ответа: - status (string) –
successилиerror - error_code (string) – (Необязательно) Если
statusсодержитerror: один из перечисленных ниже кодов ошибки - session_token (string) – (Необязательно) Если
session_stateсодержалоsetpassword: Сессионный токен пользователя - session_state (string) – (Необязательно) Если
session_stateсодержалоsetpassword: Состояние сессии пользователя:authorized. См. Пользовательские сессии - profile_mnemocode (string) – (Необязательно) Если
session_stateсодержалоsetpassword: Мнемокод профиля пользователя
Используемые коды ошибки
- auth.apikey.missing
- auth.apikey.invalid
- auth.header.missing
- auth.header.invalid
- auth.token.invalid
- auth.token.expired
- auth.session.invalid
- auth.password.invalid
- auth.user.restricted
- auth.user.closed
- auth.user.denied
- request.validation.failed
Подробнее см. Коды ошибок.
- Authorization –
Check Credentials¶
-
POST/(company_code)/v2/auth/checkcredentials¶ Check user credentials for authentication
Verifies user login ID (can be primary phone, primary email, or a separate login name depending on user role) and password for user authentication.
If invalid login_id or password was supplied,
auth.credentials.invaliderror code is returned. If there were several previous failed attempts,captcha_requiredresponse field is set totrue. Further requests to this endpoint must includecaptcha_responsefield containing valid Recapthca response.Если пользователь должен принять юридические соглашения, для успешного выполнения этого вызова массив запроса
accept_disclaimersдолжен содержать коды всех требуемых соглашений. Иначе возвращается код ошибкиauth.disclaimer.invalid, а поле ответаdisclaimers_requiredсодержит массив требуемых соглашений.Если требуется проверка второго фактора, будет возвращен временный сессионный токен с состоянием сессии
checkotp. Далее клиенту следует использовать вызов APIauth/checkotpс полученным временным сессионным токеном. Поле ответаuser_phoneбудет содержать маскированный номер телефона для проверки SMS.Если пользователь должен установить новый пароль, будет возвращен временный сессионный токен с состоянием сессии
setpassword. Далее клиенту следует использовать вызов APIauth/setpasswordс полученным временным сессионным токеном.Если никаких дальнейших действий по авторизации не требуется, у возвращаемого сессионного токена будет состояние сессии
authorized. Поле ответаprofile_mnemocodeбудет содержать мнемокод профиля пользователя для связанных с профилем вызовов API.Если авторизация пользователя по указанному идентификатору для входа запрещена, возвращает код ошибки
auth.user.restrictedсо статусом HTTP 403.Если профиль пользователя по указанному идентификатору для входа закрыт, возвращает код ошибки
auth.user.closedсо статусом HTTP 403.Если для указанного идентификатора для входа в сервисе административно отказано, возвращает код ошибки
auth.user.deniedсо статусом HTTP 403.JSON-объект запроса: - login_id (string) – Идентификатор для входа пользователя (основной телефон, основная электронная почта или отдельное имя для входа)
- password (string) – Введенный пользователем пароль
- captcha_response (string) – (Необязательно) Ответный токен captcha пользователя в виде, предоставленном Recaptcha
- accept_disclaimers (array) – (Необязательно) Массив строковых кодов соглашений, принятых пользователем
JSON-объект ответа: - status (string) –
successилиerror - error_code (string) – (Необязательно) Если
statusсодержитerror: один из перечисленных ниже кодов ошибки - captcha_required (boolean) – (Необязательно) Если
statusсодержитerror:trueесли у следующего запроса должно быть установлено полеcaptcha_response - disclaimers_required (array) – (Необязательно) Если
statusсодержитerror: Массив объектов данных юридических соглашений, которые нужно принять пользователю - session_token (string) – Сессионный токен пользователя
- session_state (string) – Состояние сессии пользователя:
checkotp,setpasswordилиauthorized. См. Пользовательские сессии - profile_mnemocode (string) – (Необязательно) Если
session_stateсодержитauthorized: Мнемокод профиля пользователя - user_phone (string) – (Необязательно) Если
session_stateсодержитcheckotp: маскированный номер телефона пользователя - password_regex (string/null) – (Необязательно) Если
session_stateсодержитsetpassword: Регулярное выражение для проверки качества пароля (проверка отключена, еслиnull) - password_regex_description (string/null) – (Необязательно) Если
session_stateсодержитsetpassword: Текст описания для проверки качества пароля
Поля соглашений
Каждый член массива ответа
disclaimers_requiredэто объект со следующими полями:Имя поля Тип Допускает null Описание code string Нет Код соглашения title string Нет Название соглашения для отображения description string Нет Краткое описание соглашения link string Нет URL ссылки на текст юридического соглашения Используемые коды ошибки
- auth.apikey.missing
- auth.apikey.invalid
- auth.captcha.missing
- auth.captcha.invalid
- auth.credentials.invalid
- auth.disclaimer.invalid
- auth.user.restricted
- auth.user.closed
- auth.user.denied
- auth.restricted
- request.validation.failed
Подробнее см. Коды ошибок.
Вход через OAuth¶
-
POST/(company_code)/v2/auth/oauth¶ Аутентифицировать пользователя в провайдере OAuth
Проверяет код авторизации OAuth в одном из сконфигурированных провайдеров OAuth и возвращает сессионный токен пользователя.
Если проверка в провайдере OAuth не удалась, возможно из-за неверных значений
codeилиredirect_uri, возвращает код ошибкиauth.oauth.failedсо статусом HTTP 401.Если профиль пользователя для проверенного пользователя провайдера OAuth не найден, возвращает код ошибки
auth.oauth.notfoundсо статусом HTTP 404.Если авторизация пользователя для аутентифицированного в провайдере OAuth пользователя запрещена, возвращает код ошибки
auth.user.restrictedсо статусом HTTP 403.Если профиль пользователя для аутентифицированного в провайдере OAuth пользователя закрыт, возвращает код ошибки
auth.user.closedсо статусом HTTP 403.Если аутентифицированному в провайдере OAuth пользователю в сервисе административно отказано, возвращает код ошибки
auth.user.deniedсо статусом HTTP 403.Если пользователь должен принять юридические соглашения, поле ответа
session_stateбудет содержатьacceptdisclaimers, а массив ответаdisclaimers_requiredбудет содержать данные требуемых соглашений. Клиентскому приложению следует далее использовать вызовauth/acceptdisclaimers, передавая полученный сессионный токен и список принятых соглашений.Если пользователю не нужно принимать юридические соглашения, у возвращаемого сессионного токена будет состояние сессии
authorized. Поле ответаprofile_mnemocodeбудет содержать мнемокод профиля пользователя для связанных с профилем вызовов API.JSON-объект запроса: - provider_id (integer) – Идентификатор провайдера OAuth, должен быть от 1 до 5
- code (string) – Код OAuth в виде, полученном от провайдера OAuth
- redirect_uri (string) – URI перенаправления в виде, переданном провайдеру OAuth
JSON-объект ответа: - status (string) –
successилиerror - error_code (string) – (Необязательно) Если
statusсодержитerror: один из перечисленных ниже кодов ошибки - session_token (string) – Сессионный токен пользователя
- session_state (string) – Состояние сессии пользователя:
authorizedилиacceptdisclaimers. См. Пользовательские сессии - disclaimers_required (array) – (Необязательно) Если
session_stateсодержитacceptdisclaimers: Массив объектов данных юридических соглашений, которые нужно принять пользователю - profile_mnemocode (string) – (Необязательно) Если
session_stateсодержитauthorized: Мнемокод профиля пользователя
Поля соглашений
Каждый член массива ответа
disclaimers_requiredэто объект со следующими полями:Имя поля Тип Допускает null Описание code string Нет Код соглашения title string Нет Название соглашения для отображения description string Нет Краткое описание соглашения link string Нет URL ссылки на текст юридического соглашения Используемые коды ошибки
- auth.apikey.missing
- auth.apikey.invalid
- auth.header.missing
- auth.header.invalid
- auth.token.invalid
- auth.token.expired
- auth.session.invalid
- auth.oauth.notfound
- auth.oauth.failed
- request.validation.failed
- auth.user.restricted
- auth.user.closed
- auth.user.denied
Подробнее см. Коды ошибок.
Принять соглашения¶
-
POST/(company_code)/v2/auth/acceptdisclaimers¶ Принять юридические соглашения при авторизации
Возвращает сессионный токен с состоянием сессии
authorized. Поле ответаprofile_mnemocodeбудет содержать мнемокод профиля пользователя для связанных с профилем вызовов API.Для успешного выполнения этого вызова массив запроса
accept_disclaimersдолжен содержать коды всех требуемых соглашений. Иначе возвращается код ошибкиauth.disclaimer.invalid, а поле ответаdisclaimers_requiredсодержит массив требуемых соглашений.Заголовки запроса: - Authorization –
Bearer <сессионный_токен>(состояние сессии должно бытьacceptdisclaimers)
JSON-объект запроса: - accept_disclaimers (array) – (Необязательно) Массив строковых кодов соглашений, принятых пользователем
JSON-объект ответа: - status (string) –
successилиerror - error_code (string) – (Необязательно) Если
statusсодержитerror: один из перечисленных ниже кодов ошибки - disclaimers_required (array) – (Необязательно) Если
statusсодержитerror: Массив объектов данных юридических соглашений, которые нужно принять пользователю - session_token (string) – Сессионный токен пользователя
- session_state (string) – Состояние сессии пользователя:
authorized. См. Пользовательские сессии - profile_mnemocode (string) – Мнемокод профиля пользователя
Поля соглашений
Каждый член массива ответа
disclaimers_requiredэто объект со следующими полями:Имя поля Тип Допускает null Описание code string Нет Код соглашения title string Нет Название соглашения для отображения description string Нет Краткое описание соглашения link string Нет URL ссылки на текст юридического соглашения Используемые коды ошибки
- auth.apikey.missing
- auth.apikey.invalid
- auth.header.missing
- auth.header.invalid
- auth.token.invalid
- auth.token.expired
- auth.session.invalid
- auth.user.restricted
- auth.user.closed
- auth.user.denied
- auth.disclaimer.invalid
- auth.restricted
- request.validation.failed
Подробнее см. Коды ошибок.
- Authorization –
Log Out¶
-
POST/(company_code)/v2/auth/logout¶ User logout (invalidate auth token)
Заголовки запроса: - Authorization –
Bearer <сессионный_токен>
JSON-объект ответа: - status (string) –
successилиerror - error_code (string) – (Необязательно) Если
statusсодержитerror: один из перечисленных ниже кодов ошибки
Используемые коды ошибки
- auth.apikey.missing
- auth.apikey.invalid
- auth.token.invalid
- auth.token.expired
- auth.session.invalid
Подробнее см. Коды ошибок.
- Authorization –