Общие сведения

Для интерактивной регистрации можно использовать HTTP-сервис внешней регистрации - ExternalRegistration

В интерактивном режиме сервис внешней регистрации работает совместно с сервисом быстрой регистрации -  FastExternalRegistration

Метод register сервиса ExternalRegistration — регистрация пользователей

Для регистрации в сервисе новых пользователей (владельцев новых абонентов) применяется метод register HTTP-сервиса внешней регистрации (ExternalRegistration).

Для вызова этого метода выполняется POST-запрос следующего вида:

Запрос

POST {baseURL}/a/extreg/hs/ExternalRegistration/register/
Content-Type: application/x-www-form-urlencoded

Здесь предполагается, что HTTP-сервис внешней регистрации ExternalRegistration опубликован с относительным адресом /a/extreg

Параметры запроса

Имя

Тип

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

Описание

name

Строка

Да

Имя пользователя

email

Строка

Да

Адрес электронной почты пользователя

phone

Строка

Да

Номер телефона пользователя для отправки SMS

promouser

Строка

Да

Идентификатор настройки внешней регистрации (используется для определения обслуживающей организации, вида создаваемого приложения, параметров подписки на тариф сервиса, назначаемой созданному абоненту сервиса и др.)

unknownErrorRedirectUrl

Строка


Адрес редиректа при ошибке регистрации

userExistsErrorRedirectUrl

Строка


Адрес редиректа при указании не уникального адреса регистрации

userExistsErrorRedirectMethodPostБулево
Выполнять метод POST при перенаправлении на страницу ошибки при не уникальном адресе регистрации.

promo

Число


Идентификатор сайта

adsrc

Число


Идентификатор источника интереса

sendemail

Булево


Признак отправки уведомления о регистрации по электронной почте.

ssoСтрока
Служебный JWT-токен SSO провайдера аутентификации сервиса. Токен заполняется из входящих параметров при регистрации с использованием стороннего провайдера аутентификации.

Дополнительные параметры при использовании промокодов

Имя

Тип

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

Описание

promocodeСтрока
Промокод
subidСтрока
Дополнительная информация о промокоде (например, метод его распространения)

promocodeNotFoundRedirectUrl

Строка

Да

Адрес редиректа при ошибке отсутствия промокода.

promocodeBlockedRediretUrl

Строка

Да

Адрес редиректа при ошибке блокировки промокода.

promocodeExpiredRedirectUrl

Строка

Да

Адрес редиректа при ошибке истечения срока использования промокода.

Дополнительные параметры при использовании защиты от автоматических действий

При использовании в сервисе защиты от автоматических действий среди параметров запроса к HTTP-сервису внешней регистрации может быть необходимо указывать параметр, значение которого возвращается сервисом проверки CAPTCHA (различения людей и роботов). Для сервиса Google reCAPTHA имя этого параметра g-recaptcha-response. Без указания этого параметра в запросе к HTTP-сервису внешней регистрации в регистрации пользователя может быть отказано.

Также в запросе к HTTP-сервису внешней регистрации указывается адрес редиректа при определении что пользователь это робот.

Имя

Тип

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

Описание

g-recaptcha-responseСтрока
Строка, возвращенная сервисом проверки CAPTCHA
userIsRobotRedirectUrlСтрока
Адрес редиректа при определении что пользователь это робот

Пример страницы для выполнения запроса

<form action="https://1cfresh.com/a/httpextreg/hs/ExternalRegistration/register" method="post" novalidate="novalidate">
    <label>Ваше имя:</label> <input name="name">
    <label>Ваш e-mail:</label> <input name="email">
    <label>Ваш телефон:</label> <input name="phone">
    <input type="hidden" name="promouser" value="ExternalRegistration">
    <input type="hidden" name="unknownErrorRedirectUrl" value="https://task1/#msgUnknownError">
    <input type="hidden" name="userExistsErrorRedirectUrl" value="https://task1/#msgEmailExists">
    <input type="hidden" name="promo" value="9">
    <input type="hidden" name="adsrc" id="adsrc" value="9">
    <input type="submit" value="Начать работу">
</form>

Возвращаемое значение

  • Если для сайта доступна быстрая регистрация, то производится редирект 302 на сервис быстрой регистрации:
     {baseURL}/a/httpextreg/hs/FastExternalRegistration/CompleteRegistration/{id}, где id – идентификатор приглашения
    • В случае, если приложение не готово, выполняется перезагрузка страницы.
    • Если приложение готово, производится редирект на адрес приложения.
  • Если для сайта не доступна быстрая регистрация, то производится редирект 302 на адрес активации через сервис внешней регистрации
  • Если адрес активации через сервис внешней регистрации не используется, то осуществляется редирект на адрес активации по приглашению

Если сервисом поддерживается быстрая регистрация, можно завершить регистрацию с помощью сервиса FastExternalRegistration.

Обработка ошибок

Если указаны параметры редиректов, то производится редирект с кодом 302 на указанный адрес. Если адрес этого редиректа не указан, возвращается исключение с кодом 500 и текстом ошибки.

Возможные адреса редиректов:

СитуацияАдрес редиректа
Не указан адрес электронной почты

unknownErrorRedirectUrl

Указанный адрес электронной почты уже используется

userExistsErrorRedirectUrl

В сервисе используется защита от автоматических действия и сервер CAPTCHA определил, что пользователь это роботuserIsRobotRedirectUrl
Прочие ошибкиunknownErrorRedirectUrl

Метод bind сервиса ExternalRegistration — привязка пользователей 

Для сопоставления (привязки) пользователя стороннего провайдера аутентификации и учетной записи существующего пользователя сервиса применяется метод bind HTTP-сервиса внешней регистрации (ExternalRegistration).

Для вызова этого метода выполняется POST-запрос следующего вида:

Запрос

POST {baseURL}/a/extreg/hs/ExternalRegistration/bind/
Content-Type: application/x-www-form-urlencoded

Здесь предполагается, что HTTP-сервис внешней регистрации ExternalRegistration опубликован с относительным адресом /a/extreg

Параметры запроса

Имя

Тип

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

Описание

login

Строка


Имя (логин) пользователя

password

Строка


Пароль пользователя

sso

Строка

Да

Служебный JWT-токен SSO с параметрами привязки, передаваемый провайдером аутентификации сервиса.

return_to

Строка


Адрес возврата

cmd

Строка


Команда выполнения перехода на адрес возврата. В случае, если для параметра return_to нужно выполнить метод POST c передачей полученных в форму привязки параметров, нужно указать значение параметра cmd=form.

Если параметры  return_to и/или cmd не заданы в параметрах запроса, используются значения из соответствующих полей JWT-токена SSO OpenID-провайдера аутентификации сервиса. 

Параметр return_to должен содержать адрес, с разрешенным для перехода именем сайта. Разрешенные имена сайта задаются администратором сервиса.

Обработка ошибок

В следующих случаях возвращается ответ с HTTP-кодом состояния 400 и текстом ошибки:

  • не указан параметр sso
  • если для стороннего провайдера аутентификации не разрешена привязка
  • если в поле scope JWT-токена SSO провайдера аутентификации не найдена строка bind
  • не указано корректное значение адреса возврата (return_to).

Вывод окна привязки

Если при вызове не был указан параметр login, выводится окно привязки (по шаблону текстов Страница привязки).

Результат выполнения

После успешного выполнения привязки существующий пользователь сервиса сможет входить в приложения сервиса, используя аутентификацию стороннего провайдера аутентификации. Сразу после привязки пользователь переходит по адресу возврата, указанному в параметре привязки return_to JWT-токена SSO, или параметра запроса, если он указан

Сервис FastExternalRegistration

Сервис позволяет быстро зарегистрировать приложение пользователя.

Запрос

GET {baseURL}/a/fastreg/hs/FastExternalRegistration/ComleteRegistration/{id}
Content-Type: application/x-www-form-urlencoded

Здесь предполагается, что HTTP-сервис FastExternalRegistration опубликован с относительным адресом /a/fastreg

Параметры запроса

Имя

Описание

Тип

id

Идентификатор приглашения для регистрации

Строка

В процессе подготовки производится редирект на страницу подготовки приложения. 

После завершения подготовки приложения производится редирект на страницу с приложением и осуществляется вход пользователя в приложение без ввода данных регистрации.

В случае ошибок возвращается ответ с HTTP-кодом состояния 500.