#557: Интеграция быстрого логина через OTP с помощью кода авторизации пользователя
Отредактирована: 172 дня назадПри интеграции портала технической поддержки в стороннее приложение возникает задача быстрой и прозрачной авторизации пользователя в Swarmica.
Swarmica позволяет подключить прозрачную авторизацию приложения через шифр-пароль, полученный для заданного пользователя с помощью фиксированного алгоритма OTP (one-time-password, одноразовый пароль)
Алгоритм авторизации

- При успешной регистрации / авторизации в интегрируемом приложении, бэкенд приложения выполняет API вызов /api/auth/otp/code/request, передавая данные пользователя, для которого нужно создать код авторизации. Параметры вызова аналогичны API вызову Создать пользователя.
- Swarmica находит существующего пользователя с такими данными или же создает новую учетную запись и отдает код авторизации и данные пользователя в ответе.
- Фронтенд интегрируемого приложения отображает ссылку, которая должна вести на портал Swarmica:
https://swarmica_address_tld/auth/otp/code/?data=...&errorUrl=...&redirectUrl=... - При переходе по ссылке, Swarmica:
- В случае успешной авторизации, либо перенаправляет пользователя на указанный redirectUrl, если данный параметр указан, или переводит на базовую страницу внутри Swarmica, соответствующую роли пользователя
- В случае ошибки, если указан параметр errorUrl, Swarmica перенаправляет пользователя туда, передав errorMessage в параметры ссылки. Если параметр не указан, то ошибка отображается на странице авторизации Swarmica.
Алгоритм формирования ссылки
Ссылка на фронтенде интегрируемого приложения должна состоять из:
- Адрес портала Swarmica (
https://swarmica__address__tld) - URI страницы авторизации через OTP code (
/auth/otp/code) - Параметры:
- data - обязательный параметр, содержащий авторизационный шифр в URLEncoded виде
- errorUrl - URLEncoded адрес, куда пользователя перенаправит в случае ошибки авторизации, необязательный параметр. Сообщение об ошибке будет передано в параметре errorMessage для данной ссылки
Например, если
errorUrl=https%3A%2F%2Fswarmica.ru, то в случае ошибкиRequest failed with status code 404пользователь будет перенаправлен на адресhttps://swarmica.ru?Request%20failed%20with%20status%20code%20404 - redirectUrl - URLEncoded адрес, куда пользователя перенаправит в случае успешной авторизации, необязательный параметр
Алгоритм шифрования
Для корректной авторизиции пользователя необходимо зашифровать JSON данные с помощью фиксированного алгоритма шифрования:
{
"email": "someuser@email.tld",
"code": "user_auth_code",
"timestamp": 1742907325
}
Для получения подробной инструкции обратитесь в поддержку Swarmica