createUserWithApproval

inline fun UsersManager.createUserWithApproval(parentActivity: Activity? = null, externalId: String? = null, alias: String? = null, name: String?, serviceUrl: String?, deviceName: String?, pushData: PushNotificationData? = null, uid: String?, checkingInterval: Float = 3.0f, requirePassword: Boolean = true, crossinline onError: (error: Error) -> Unit, crossinline onNetworkError: (error: NetworkError) -> Unit, crossinline onSuccess: (success: User) -> Unit)

Создание запроса на подключение другого устройства к учётной записи пользователя.

Запускает процесс добавления устройства, где в ответ на данный запрос формирует "вектор аутентификации" и передаёт его на данное устройство. Подтверждение с другого устройства выполняется через получение списка устройств методом DevicesManager.listDevices, нахождением в списке устройства с заданным kid и вызовом методов DevicesManagerNonQual.approve или DevicesManagerNonQual.reject для подтверждения или отклонения запроса на регистрацию соответственно.

После выполнения метода выполняется условие User.isReadyToSign == true, созданная учетная запись имеет статус ru.cryptopro.ckey.sdk.v1.Device.DeviceStatus.ApproveRequired.

Запускает последовательность экранов SDK, выполняющих:

  1. Запрос политик сервера

  2. Запрос пароля и отпечатка с проверкой парольной политики:

    • Если парольная политика имеет значение 0 (допускается пропуск шага с заданием пароля) и requirePassword == false, то пароль не запрашивается

    • В противном случае пользователю предлагается ввести пароль

    • Если флаг KEYFLAG_DENY_STORE_WITH_OS_PROTECTION опущен, то введенный пароль предлагается зашифровать с использованием отпечатка пальца для возможности использования отпечатка в дальнейшем

  3. Регистрацию ключа на сервере (отпечаток устройства, пуш-идентификатор)

  4. Сохранение объекта User в хранилище Shared Preferences

  5. Отображение QR-кода для сканирования устройством, с которого будет выполняться подтверждение регистрации

Parameters

parentActivity

Экземпляр Activity приложения, с которого будет запущено Activity из SDK. При этом Activity из SDK добавляется в стек той же задачи, в которой запущена parentActivity. Если указать null, то Activity из SDK будет запущена отдельной задачей из контекста приложения, переданного при инициализации.

externalId

Желаемое имя пользователя (login), имя пользователя может быть использовано вызывающей системой для управления учётной записью пользователя. Если данный параметр отсутствует в запросе, то его значение будет создано автоматически на стороне сервера.

alias

Уникальный человекочитаемый идентификатор, используемый для подтверждения владения МУ пользователем. Если данный параметр отсутствует в запросе, то его значение будет создано автоматически на стороне сервера.

serviceUrl

URL для взаимодействия с сервером

deviceName

Читаемое название устройства

pushData

Данные для получения PUSH-уведомлений

uid

Идентификатор добавляемого девайса

checkingInterval

Если задано ненулевое значение, то статус регистрации устройства будет проверяться каждые checkingInterval секунд в независимости от нажатия кнопки проверки статуса. Значение 0 указывает, что фоновая проверка статуса осуществляться не будет.

requirePassword

Требуется ли ручное задание пароля пользователем для защиты ключа

onError

При ошибке возвращается возвращает Error

onNetworkError

При сетевой ошибке возвращается NetworkError

onSuccess

При успешном выполнении возвращает созданный объект пользователя User

See also


inline fun UsersManagerNonQual.createUserWithApproval(externalId: String?, alias: String?, serviceUrl: String, deviceName: String, pushData: PushNotificationData?, uid: String, crossinline onError: (error: Error) -> Unit, crossinline onNetworkError: (error: NetworkError) -> Unit, crossinline onSuccess: (success: User) -> Unit)

Создание запроса на подключение другого устройства к учётной записи пользователя.

Запускает процесс добавления устройства, где в ответ на данный запрос формирует "вектор аутентификации" и передаёт его на данное устройство. Подтверждение с другого устройства выполняется через получение списка устройств методом DevicesManager.listDevices, нахождением в списке устройства с заданным kid и вызовом методов DevicesManagerNonQual.approve или DevicesManagerNonQual.reject для подтверждения или отклонения запроса на регистрацию соответственно.

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

Parameters

externalId

Желаемое имя пользователя (login), имя пользователя может быть использовано вызывающей системой для управления учётной записью пользователя. Если данный параметр отсутствует в запросе, то его значение будет создано автоматически на стороне сервера.

alias

Уникальный человекочитаемый идентификатор, используемый для подтверждения владения МУ пользователем. Если данный параметр отсутствует в запросе, то его значение будет создано автоматически на стороне сервера.

serviceUrl

URL для взаимодействия с сервером

deviceName

Читаемое название устройства

pushData

Данные для получения PUSH-уведомлений

uid

Идентификатор добавляемого девайса

onError

При ошибке возвращается возвращает Error

onNetworkError

При сетевой ошибке возвращается NetworkError

onSuccess

При успешном выполнении возвращает созданный объект пользователя User

See also