#557: Интеграция быстрого логина через OTP с помощью кода авторизации пользователя

Отредактирована: 172 дня назад

При интеграции портала технической поддержки в стороннее приложение возникает задача быстрой и прозрачной авторизации пользователя в Swarmica.

Swarmica позволяет подключить прозрачную авторизацию приложения через шифр-пароль, полученный для заданного пользователя с помощью фиксированного алгоритма OTP (one-time-password, одноразовый пароль)

Алгоритм авторизации

  1. При успешной регистрации / авторизации в интегрируемом приложении, бэкенд приложения выполняет API вызов /api/auth/otp/code/request, передавая данные пользователя, для которого нужно создать код авторизации. Параметры вызова аналогичны API вызову Создать пользователя.
  2. Swarmica находит существующего пользователя с такими данными или же создает новую учетную запись и отдает код авторизации и данные пользователя в ответе.
  3. Фронтенд интегрируемого приложения отображает ссылку, которая должна вести на портал Swarmica:
    https://swarmica_address_tld/auth/otp/code/?data=...&errorUrl=...&redirectUrl=...
  4. При переходе по ссылке, Swarmica:
    1. В случае успешной авторизации, либо перенаправляет пользователя на указанный redirectUrl, если данный параметр указан, или переводит на базовую страницу внутри Swarmica, соответствующую роли пользователя
    2. В случае ошибки, если указан параметр 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