Frontend uchun o'rnatish

Terminalni oching va loyihangizga plagin o'rnatish uchun quyidagi buyruqni ishlating:

      
npm install @jx_code/rsimzo-client

Foydalanish

new RsimzoClient(options)
Klassni boshlash
      
import { RsimzoClient, RsOptions } from "@jx_code/rsimzo-client"; const options: RsOptions = { paths: { fetchToken: '/path/to/generate/token' } } const rsimzo = new RsimzoClient(options)

Mumkin bo'lgan options: RsOptions

baseURL
  • Type: string
  • Default: window.location.origin
So'rovlarni yuborish uchun ishlatiladigan asosiy URL.
locale
  • Type: string
  • Default: en
Dasturning qo'llab-quvvatlagan tillari. Mumkin bo'lgan qiymatlar: en, ru, uz, uz-kr.
headers
  • Type: Record<string, string>
  • Default: {}
So'rovlar uchun ma'lumotlarni yuborish uchun ma'lumotlar. Masalan, Authorization parameterini o'tkazish uchun ishlatiladi.
paths.generateTokenrequired
  • Type: string
Token yaratish uchun API URL manzili.
instantCertsFetch
  • Type: boolean
  • Default: false
Agar true qo'yilsa, rsimzo.getCertificates() metod barcha sertifikatlar ro'yxatini foydalanuvchi tasdiqlamasiz qaytaradi.
storage
  • Type: boolean | StorageOptions
  • Default: true
rsimzo.getCertificates() metod natijalari localStorageda saqlanadimi. Qiymat boolean yoki StorageOptions obyekti bo'lishi mumkin.
storage.prefix
  • Type: string
Ma'lumotlarni localStorageda saqlash uchun ishlatiladigan prefiks

Maydonlar

rsimzo.certificates
  • Type: RsCertificate[]
localStorageda saqlangan sertifikatlar ro'yxati. Agar localStorageda ma'lumot bo'lmasa, bo'sh massiv [] qaytariladi
      
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 }

Metodlar

rsimzo.getCertificates(options?: {locale: string, instantCertsFetch: boolean})
  • Type: RsCertificate[] | null
Kalitlarni sinxronlashtirish uchun rs-imzo.uz oynasini ochadi. Metodni chaqirgandan so'ng, foydalanuvchi veb-saytingizga yuklab olish uchun ERI kalitlarini tanlashi kerak bo'lgan oyna ochiladi. Kalit ma'lumotlari localStorageda saqlanishi mumkin. Agar instantCertsFetch qiymati true bo'lsa, oyna barcha mijoz sertifikatlari saqlanganidan so'ng avtomatik ravishda yopiladi.
      
const { data: list } = await rsimzo.getCertificates() if (list) { console.log(list) }

Agar mijoz oynani yopmasa, metod null qiymatni qaytaradi

Mumkin bo'lgan options

locale
  • Type: string
Dasturning qo'llab-quvvatlagan tillari. Mumkin bo'lgan qiymatlar: en, ru, uz, uz-kr.
instantCertsFetch
  • Type: boolean
Agar true qo'yilsa, rsimzo.getCertificates() metod barcha sertifikatlar ro'yxatini foydalanuvchi tasdiqlamasiz qaytaradi.

rsimzo.sign(serial: string, content: string, options?: RsSignOptions)
  • Type: string | null
Hujjatni imzolash uchun rs-imzo.uz oynasini ochadi. Metodni chaqirgandan so'ng, foydalanuvchi parol kiritishi kerak bo'lgan oyna ochiladi. Metod natijasi pkcs7
      
const content = 'imzolamoqchi bo'lgan matn' const serial = 'rsimzo.getCertificates() metodidan olingan seriyanomeri' const { data: pkcs7 } = await rsimzo.sign(serial, btoa(content)) console.log(pkcs7)

Imzolash uchun kerakli matn base64 formatida bo'lishi shart

Mumkin bo'lgan options: RsSignOptions

locale
  • Type: string
Dasturning qo'llab-quvvatlagan tillari. Mumkin bo'lgan qiymatlar: en, ru, uz, uz-kr.
attached
  • Type: boolean
  • Default: true
Imzolanadigan kontentni yakuniy pkcs7 ga bog'laydi.

rsimzo.auth(options?: RsAuthOptions)
  • Type: string | null
Hujjatni tasdiqlash uchun rs-imzo.uz oynasini ochadi. Metodni chaqirgandan so'ng, foydalanuvchi kalitni tanlash va parol kiritishi kerak bo'lgan oyna ochiladi. Metod natijasi pkcs7
      
const { data: pkcs7 } = await rsimzo.auth() console.log(pkcs7)

Mumkin bo'lgan options: RsAuthOptions

locale
  • Type: string
Dasturning qo'llab-quvvatlagan tillari. Mumkin bo'lgan qiymatlar: en, ru, uz, uz-kr.

Xatolarni qayta ishlash

Har bir so'rov uchun xatolarni tekshirishingiz kerak

      
const { error } = await rsimzo.sign(serial, btoa(content)) if(error && error.errorCode === 13) { console.log('Invalid password') }

error parametrlar

errorCode
  • Type: number
Yagona xato kodi
  • 13 - Noto'g'ri parol
  • 10001 - Oyna yopilgan
  • 10002 - HTTP so'rov xatosi
  • 10003 - Harakat natijasiz yakunlandi
  • 10004 - Sertifikat topilmadi
  • 10005 - Noto'g'ri token
  • 10006 - Noto'g'ri parametrlar qabul qilindi
errorMessage
  • Type: string
Xato xabari. Matn doimo ingliz tilida bo'ladi. Agar tarjima kerak bo'lsa, errorCode dan foydalaning
rawError
  • Type: any
Ishlov berilmagan xato