Установка на фронтэнд
Откройте терминал и используйте следующую команду для установки плагина на ваш проект.
npm install @jx_code/rsimzo-client
Использование
new RsimzoClient(options)
Инитиализация класса
import { RsimzoClient, RsOptions } from "@jx_code/rsimzo-client"; const options: RsOptions = { paths: { fetchToken: '/path/to/generate/token' } } const rsimzo = new RsimzoClient(options)
Возможны параметры options: RsOptions
baseURL
- Type:
string
- Default:
window.location.origin
Базовый URL, используемый для всех HTTP-запросов в приложении.
locale
- Type:
string
- Default:
en
Указывает поддерживаемые языки приложения. Возможные значения:
en
, ru
, uz
, uz-kr
.headers
- Type:
Record<string, string>
- Default:
{}
Метаданные для запросов, содержащие информацию о запросе или передаваемых данных. Например, может использоваться для передачи параметра
Authorization
.paths.generateTokenrequired
- Type:
string
URL для API, который используется для генерации токена.
instantCertsFetch
- Type:
boolean
Если установлено в true, метод
rsimzo.getCertificates()
вернет список всех сертификатов без необходимости подтверждения. По умолчанию - false
storage
- Type:
boolean | StorageOptions
- Default:
true
Этот параметр отвечает за сохранение результатов метода
rsimzo.getCertificates()
в localStorage
. Значение может быть boolean или объект StorageOptions.storage.prefix
- Type:
string
- Default:
rs.
Префикс, используемый для сохранения данных в
localStorage
Поля
rsimzo.certificates
- Type:
RsCertificate[]
Список сертификатов, сохраненных в
localStorage
. Если данных в localStorage
нет, возвращается пустой массив []
const list = rsimzo.certificates console.log(list)
interface RsCertificate { pin?: string tin?: string address: string country: string expireAt: number expireFrom: number fullName: string serial: string uid: string isLegalEntity: boolean orgName?: string isExpired: boolean }
Методы
rsimzo.getCertificates(options?: {locale: string, instantCertsFetch: boolean})
- Type:
RsCertificate[] | null
Открывает окно rs-imzo.uz для синхронизации ключей. После вызова метода, откроется окно, где пользователь должен выбрать ЭЦП ключи для загрузки на ваш сайт. Данные ключа можно сохранить в
localStorage
. Если instantCertsFetch
установлено в true
, окно закроется автоматически после сохранения всех сертификатов клиента.const { data: list } = await rsimzo.getCertificates() if (list) { console.log(list) }
Если клиент закроет окно, результатом метода будет null
Возможны параметры options
locale
- Type:
string
Указывает поддерживаемые языки приложения. Возможные значения:
en
, ru
, uz
, uz-kr
.instantCertsFetch
- Type:
boolean
Если установлено в true, метод
rsimzo.getCertificates()
вернет список всех сертификатов без необходимости подтверждения.rsimzo.sign(serial: string, content: string, options?: RsSignOptions)
- Type:
string | null
Открывает окно rs-imzo.uz для подписи документа. После вызова метода, откроется окно, где пользователь должен ввести пароль. Результат метода
pkcs7
const content = 'string you want to sign' const serial = 'get serial number from rsimzo.getCertificates() method' const { data: pkcs7 } = await rsimzo.sign(serial, btoa(content)) console.log(pkcs7)
Подписываемый контент обязательно должен быть в формате base64
Возможны параметры options: RsSignOptions
locale
- Type:
string
Указывает поддерживаемые языки приложения. Возможные значения:
en
, ru
, uz
, uz-kr
.attached
- Type:
boolean
- Default:
true
Привязывает подписываемый контент к окончательному pkcs7.
rsimzo.auth(options?: RsAuthOptions)
- Type:
string | null
Открывает окно rs-imzo.uz для подписи документа. После вызова метода, откроется окно, где пользователь должен выбрать ключ и ввести пароль. Результат метода
pkcs7
const { data: pkcs7 } = await rsimzo.auth() console.log(pkcs7)
Возможны параметры options: RsAuthOptions
locale
- Type:
string
Указывает поддерживаемые языки приложения. Возможные значения:
en
, ru
, uz
, uz-kr
.Обработка ошибки
При каждом запросе вы должны проверять на наличии ошибок
const { error } = await rsimzo.sign(serial, btoa(content)) if(error && error.errorCode === 13) { console.log('Invalid password') }
Параметры error
errorCode
- Type:
number
Уникальный код ошибки
13
- Неверный пароль10001
- Окно закрыто10002
- Ошибка при HTTP запросе10003
- Действие завершилось без результата10004
- Сертификат не найден10005
- Недействительный токен10006
- Получены неверные параметры
errorMessage
- Type:
string
Текст ошибки. Текст всегда на английском языке. Если необходимо сделать перевод, то используйте
errorCode
rawError
- Type:
any
Необработанная ошибка