Параметры авторизации

Для указанных выше методов авторизации, следует пояснить особенности работы платформы, которые будут полезны при разработке Ваших решений.

Специальное поле для авторизации

По умолчанию авторизация происходит по полю OID структуры WebUser. Предположим, что для доступа используется номер телефона клиента. Из-за этого приходится передавать клиентский номер в каждом запросе, что является плохой практикой.

Для решения этой проблемы предусмотрен параметр loginField. Рассмотрим на примере:

POST {{your_domain}}**/good/api/v4/auth**

Payload

{
"provider": "rest",
"appID" : "797753fa-b759-4807-a5a1-6f6581d75799",
"username": "999000000",
"password": "123456",
"loginField" : "phone"
}

Сравнение логина будет идти с полем phone структуры WebUser, а не OID.

Важно!

Поскольку пользователю предоставлена возможность задать любое название поля, необходимо следить за его уникальностью. Иначе сравнение может пойти по любому значению из двух одинаковых полей

Генерация события при создании пользователя в структуре WebUser

При авторизации через Google или OpenID в структуре WebUser создаётся пользователь (если его там раньше не было), при этом по умолчанию порождается событие. Из-за этого возможна ситуация, при которой запустятся некоторые сценарии, реагирующие на появление новых объектов в этой структуре. Такое развитие может повредить бизнес-логике приложения.

Для предотвращения подобного поведения предусмотрен параметр oauthCreateEvent. Он применяется при отправке запроса во время авторизации через сервисы Google или OpenID.

Например, в первом запросе на авторизацию через OpenID тело запроса будет выглядеть следующим образом: POST {{your_domain}}/good/v4/auth/link

Payload

{
"appID":"bcee4431-50b7-4cbc-a83f-f3cd7ace1673",
"provider": "openid",
"clientID": "server.code",
"redirect_uri":"{{your_domain}}/callback",
"oauthCreateEvent": true
}

Коды ответов

  • Корректная авторизация => статус 200;

  • Ошибка авторизации: "AUTHENTICATION_FAILED_CAPTCHA" => статус 401;

  • Ошибка логина/пароля: "LOGIN_OR_PASSWORD_INCORRECT" => статус 401;

  • Приложение заблокировано: ERROR_APP_IS_BLOCKED => статус 452;

  • Приложение заблокировано: ("APP_IS_BLOCKED", 503) => статус 503 использовалось до версии 5.9;

  • Приложение не найдено: ERROR_APP_NOT_FOUND => статус 454;

  • Приложение не найдено: ("APP_IS_NOT_FOUND", 501) => статус 501 использовалось до версии 5.9;

  • Приложение существует, но не хватает прав доступа: ERROR_USER_HAS_NOT_RIGHT => статус 453;

  • Пользователь заблокирован или не найден: "LOGIN_OR_PASSWORD_INCORRECT" => статус 403;