Type parameters
Hierarchy
- BaseItem<DigitalSignItemData>
-
ItemRef<DigitalSign>
- DigitalSign
Properties
Readonly code
Код приложения цели ссылки (код приложения).
Readonly data
Значения полей объекта.
Readonly fields
Описание полей объекта.
Readonly id
Идентификатор цели ссылки.
Readonly namespace
Пространство имен цели ссылки (код раздела приложения).
Methods
confirm
-
Подтверждение выпуска сертификата электронной подписи.
Parameters
-
secret: string
Пароль, полученный от провайдера.
Используется для подтверждения выпуска сертификата по созданной заявке. Метод отправляет полученный пользователем пароль провайдеру, который выпускает сертификат. Проверку корректности пароля осуществляет провайдер.
В примере рассматривается отправка пароля, полученного из контекста. Для этого используется поле
password
.// Получение заявки const lastRequest = await System.signs.digitalSigns.getLastRequest(); // Извлечение пароля из контекста const userPassword = Context.data.password; // Отправка пароля await lastRequest.confirm(userPassword);
Returns Promise<boolean>
-
fetch
-
Запрос полных данных объекта-ссылки.
Returns Promise<DigitalSign>
getIdentification
-
Получает тип идентификации.
Метод возвращает тип идентификации личности, который используется для выпуска сертификата электронной подписи.
В примере показана ситуация, когда в зависимости от типа идентификации должны выполняться различные действия. Сначала получим последнюю созданную подпись с помощью метода DigitalSigns.getLastRequest. Затем определим дальнейшие действия: при идентификации через Госуслуги никаких действий не требуется, но при авторизации с помощью пароля необходимо ввести пароль, полученный от провайдера.
const lastDigitalSign = await System.signs.digitalSigns.getLastRequest(); if (lastDigitalSign.getIdentification() === DigitalSignIdentificationType.ESIA) { // Если используется идентификация через Госуслуги, действий не требуется return; } if (lastDigitalSign.getIdentification() === DigitalSignIdentificationType.Secret) { // Если используется идентификация через пароль, запрашиваем его await lastDigitalSign.getSecret(); // Отображаем окно для ввода пароля // Название функции приведено для примера // В качестве окна ввода пароля может быть использован любой подходящий виджет this.showConfirmWindow(); }
Returns DigitalSignIdentificationType
normalize
-
Удаление дублирующихся данных в массивах.
Выполнить удаление дубликатов в полях, в которых хранятся массивы ссылок на объекты системы (пользователи, файлы, элементы приложений, документы).
Этот метод, например, можно вызвать после массового изменения данных в объекте.
const app1 = await Context.data.app1.fetch(); const app2 = await Context.data.app2.fetch(); app1.data.executors.push(app2.data.executors); app1.normalize(); // Далее перебираем элементы нового массива app1.data.executors.forEach( ... );
Returns void
receiveSecret
-
Получает пароль для подтверждения личности пользователя в рамках заявки на выпуск сертификата электронной подписи.
Метод запрашивает у провайдера пароль для пользователя, выпускающего сертификат. Провайдер выполняет отправку пароля пользователю на контактные данные, указанные в заявке. Способ отправки данных зависит от провайдера и его настроек.
В примере рассматривается получение последней заявки на выпуск сертификата и запрос пароля для этой заявки.
// Получение последней созданной заявки const lastRequest = await System.signs.digitalSigns.getLastRequest(); // Запрос пароля для заявки await lastRequest.receiveSecret();
Returns Promise<void>
setAlias
-
Метод устанавливает имя сертификата электронной подписи.
Используя метод, можно задать удобное и понятное для пользователя имя сертификата.
В примере стандартное имя сертификата с идентификатором, хранимым в контексте, заменяется на имя, удобное для пользователя:
// Извлечение идентификатора электронной подписи из контекста const digitalSignId = Context.data.digitalSignId; if (!digitalSignId) { throw new Error('Идентификатор электронной подписи не найден'); } const digitalSign = await System.signs.digitalSigns.search().where(q => q.__id.eq(digitalSign)).first(); if (!digitalSign) { throw new Error('Электронная подпись не найдена'); } await digitalSign.setAlias('Сертификат Иванова');
Parameters
-
alias: string
Пользовательское имя сертификата.
Returns Promise<void>
-
setPublicKey
-
Устанавливает публичный ключ.
Публичный ключ содержит публичную информацию о выпущенной подписи, выданную провайдером. Необходимо указывать в кодировке ASN.1 DER. Хранится в системе для возможности проверки сертификата электронной подписи, визуализации информации об используемом сертификате, а также получения информации об удостоверяющем центре и организации, которые выпустили сертификат.
В примере показано, как установить публичный ключ для электронной подписи по ее идентификатору в контексте:
// Извлечение идентификатора электронной подписи из контекста const digitalSignId = Context.data.digitalSignId; if (!digitalSignId) { throw new Error('Идентификатор электронной подписи не найден'); } const digitalSign = await System.signs.digitalSigns.search().where(q => q.__id.eq(digitalSign)).first(); if (!digitalSign) { throw new Error('Электронная подпись не найдена'); } // Получение содержимого электронной подписи от внешнего провайдера // Название функции приведено для примера const certData = await getCertDataFromExternalProvider(); // Установка публичного ключа для подписи await digitalSign.setPublicKey(certData);
Parameters
-
cert: ArrayBuffer
Публичный ключ электронной подписи в кодировке ASN.1 DER.
Returns Promise<void>
-
setStatus
-
Метод выполняет установку статуса заявки на выпуск сертификата электронной подписи.
Используется для изменения статуса заявки на выпуск сертификата электронной подписи при выпуске электронной подписи или его отмене. По статусу можно понять, на каком этапе выпуска находится электронная подпись. Список статусов указан в интерфейсе DigitalSignRequestStatus.
В примере устанавливается статус для заявки по подписи с идентификатором, хранимым в контексте:
// Извлечение идентификатора электронной подписи из контекста const digitalSignId = Context.data.digitalSignId; if (!digitalSignId) { throw new Error('Идентификатор электронной подписи не найден'); } const digitalSign = await System.signs.digitalSigns.search().where(q => q.__id.eq(digitalSign)).first(); if (!digitalSign) { throw new Error('Электронная подпись не найдена'); } await digitalSign.setStatus(DigitalSignRequestStatus.Approved);
Parameters
-
status: DigitalSignRequestStatus
Новый статус заявки.
Returns Promise<void>
-
Сертификат электронной подписи
Сертификат выпускается при помощи интеграции с каким-либо провайдером, предоставляющим услуги по выпуску сертификатов электронных подписей и подписанию пользовательских данных.