1. Avtorizatsiya va QR orqali imzolash
RSID docs
Uzbek
  • English
  • Russian
  • Uzbek
  • Umumiy tushunchalar
  • Web SDK
    • Integratsiya qo'llanmasi
    • Avtorizatsiya (sign-in)
      POST
    • Tokenni yangilash (refresh)
      POST
    • Sessiya yaratish
      POST
    • Foydalanuvchi ma'lumotlarini olish
      GET
  • Mobile SDK
    • Integratsiya qo'llanmasi
    • Avtorizatsiya (sign-in)
      POST
    • Tokenni yangilash (refresh)
      POST
    • Sessiya yaratish
      POST
    • Foydalanuvchi ma'lumotlarini olish
      GET
  • Server orqali (ma'lumotlar bilan)
    • Integratsiya qo'llanmasi
    • Avtorizatsiya (sign-in)
      POST
    • Tokenni yangilash (refresh)
      POST
    • 1-variant — fotosuratni pasport fotosurati bilan taqqoslash
      POST
    • 2-variant — ikki fotosuratni fuqaro ma'lumotlari bilan taqqoslash
      POST
    • 3-variant — ikki fotosuratni fuqaro ma'lumotlarisiz taqqoslash
      POST
    • Natijani olish
      GET
  • Server orqali (ma'lumotlarsiz)
    • Integratsiya qo'llanmasi
    • Avtorizatsiya (sign-in)
    • Tokenni yangilash (refresh)
    • 1-variant — fotosuratni pasport fotosurati bilan taqqoslash
    • 2-variant — ikki fotosuratni fuqaro ma'lumotlari bilan taqqoslash
    • 3-variant — ikki fotosuratni fuqaro ma'lumotlarisiz taqqoslash
  • Avtorizatsiya va QR orqali imzolash
    • RS-ID orqali kirish (OAuth2)
    • QR-kod orqali imzolash
    • Kod bo'yicha foydalanuvchi ma'lumotlarini olish
      POST
    • Avtorizatsiya (sign-in)
      POST
    • Tokenni yangilash (refresh)
      POST
    • QR-token yaratish
      POST
    • qr_id bo'yicha QR-token holati
      GET
    • external_id bo'yicha QR-token holati
      GET
  • Schemas
    • ErrorResponse
    • AuthCodeRequest
    • ClientCredentials
    • Token
    • UserInfo
    • TokenResponseEnvelope
    • DocumentInfo
    • Signer
    • StringResponseEnvelope
    • ContactInfo
    • CallbackEvent
    • UserProfile
    • QrTokenCreateRequest
    • PhotoItem
    • Address
    • UserProfileResponseEnvelope
    • AdditionalParams
    • WebSessionCreateRequest
    • QrToken
    • UserProfileResponse
    • CompareFaceRequest
    • UserResponseEnvelope
    • CompareImagesWithInfoRequest
    • QrTokenResponseEnvelope
    • CompareImagesRequest
    • SignCallback
    • ComparisonResult
    • MobileSessionCreateRequest
    • ComparisonResultEnvelope
  1. Avtorizatsiya va QR orqali imzolash

RS-ID orqali kirish (OAuth2)

1. RS-ID orqali kirish nima#

RS-ID orqali kirish foydalanuvchilarga saytingizga parol o'rniga RS-ID mobil ilovasi orqali kirish imkonini beradi. Integratsiya standart OAuth 2.0 Authorization Code protokoli asosida qurilgan.
Saytingiz foydalanuvchini RS-ID avtorizatsiya sahifasiga yo'naltiradi. Sahifada QR-kod ko'rsatiladi; foydalanuvchi uni RS-ID mobil ilovasida skanerlaydi va shaxsini yuz orqali tasdiqlaydi. Shundan so'ng RS-ID foydalanuvchini bir martalik avtorizatsiya kodi bilan saytingizga qaytaradi, backendingiz esa bu kodni foydalanuvchining tasdiqlangan profiliga almashtiradi.
Siz parollar, pasport ma'lumotlarini kiritish yoki yuzni tekshirish bilan ishlamaysiz — buni RS-ID bajaradi, backendingiz esa tasdiqlangan shaxsni oladi.

Foydalanish holatlari#

HolatMisol
Parolsiz kirishFoydalanuvchilar RS-ID ilovasida QR-kodni skanerlab, veb-portalingizga kiradi.
Tasdiqlangan ro'yxatdan o'tishYangi foydalanuvchi bir qadamda ro'yxatdan o'tadi; akkaunt tasdiqlangan F.I.Sh., JSHSHIR va hujjat ma'lumotlari bilan yaratiladi.
Muhim xizmatlarga kirishHar bir kirishda haqiqiy, tasdiqlangan shaxs talab qilinadigan bank, sug'urta, davlat yoki tibbiyot portallari.
Bir nechta xizmat uchun yagona shaxsBir xil RS-ID shaxsi bir nechta mahsulotlaringizga kirish uchun ishlatiladi.

2. Atamalar#

AtamaKim / nima
Mijoz (Client)RS-ID'ni integratsiya qilayotgan kompaniya (siz). RS-ID'da AUTH turidagi loyiha sifatida ro'yxatdan o'tgan va client_id / client_secret hamda ro'yxatdan o'tkazilgan redirect_uri olgan. Mijoz frontendi (saytingiz) va mijoz backendini o'z ichiga oladi.
FoydalanuvchiTizimga kirayotgan inson — RS-ID mobil ilovasi o'rnatilgan mijozingiz.
RS-ID avtorizatsiya sahifasiFoydalanuvchi QR-kodni skanerlaydigan RS-ID veb-sahifasi.
RS-ID mobil ilovasiFoydalanuvchi telefonidagi RS-ID ilovasi; u orqali QR-kod skanerlanadi va shaxs tasdiqlanadi.
ServerAvtorizatsiya kodlarini beradigan va foydalanuvchi profilini qaytaradigan RS-ID serveri.
Avtorizatsiya kodi (code)Foydalanuvchi kirgandan so'ng RS-ID sizning redirect_uri manzilingizga yuboradigan bir martalik kod. 5 daqiqa amal qiladi, bir marta ishlatiladi.
redirect_uriRS-ID foydalanuvchini code bilan qaytaradigan saytingizdagi URL. RS-ID'da ro'yxatdan o'tkazilgan bo'lishi kerak.
stateSaytingiz har bir kirish uchun yaratadigan va qaytishda tekshiradigan tasodifiy qiymat — CSRF hujumlaridan himoya.
JSHSHIR (PINFL)Jismoniy shaxsning shaxsiy identifikatsiya raqami — 14 ta raqam.

3. Qanday ishlaydi#

1.
Foydalanuvchi saytingizda RS-ID orqali kirish tugmasini bosadi.
2.
Saytingiz foydalanuvchini client_id, redirect_uri, response_type=code va state parametrlari bilan RS-ID avtorizatsiya sahifasiga yo'naltiradi (7.1).
3.
Avtorizatsiya sahifasi har 30 soniyada yangilanadigan QR-kodni ko'rsatadi (7.2).
4.
Foydalanuvchi QR-kodni RS-ID mobil ilovasida skanerlaydi va shaxsini tasdiqlaydi.
5.
Avtorizatsiya sahifasi foydalanuvchini code va state bilan sizning redirect_uri manzilingizga yo'naltiradi (7.3).
6.
Backendingiz state ni tekshiradi va POST /v1/user/by-code orqali code ni foydalanuvchi profiliga almashtiradi (7.4).
7.
Siz foydalanuvchini o'z tizimingizga kiritasiz.

4. Integratsiya sxemasi#

integration-flow-oauth2.png

5. Muhitlar#

MuhitRS-ID avtorizatsiya sahifasiAPI bazaviy URL
Stage (test)https://auth.stage.rsid.uzhttps://sdk.stage.rsid.uz/web/api
Productionhttps://auth.rsid.uzhttps://sdk.rsid.uz/web/api
Stage va production uchun turli client_id / client_secret ishlatiladi. redirect_uri har bir muhit uchun alohida ro'yxatdan o'tkaziladi.

6. Umumiy qoidalar#

Javob formati#

Barcha API javoblari bir xil tuzilishga ega:
{ "data": { }, "code": 0, "message": "Success" }
MaydonTuriTavsif
codeinteger0 — muvaffaqiyat. Boshqa har qanday qiymat — xato (xatolar jadvaliga qarang). Faqat HTTP-statusni emas, har doim code ni tekshiring.
messagestringSo'rov tilidagi matn (uz / ru / en). Uni dasturiy tahlil qilmang.
dataanyJavob ma'lumotlari. Xato bo'lganda yo'q.

Xavfsizlik#

client_secret faqat backendingizda saqlanadi. Uni hech qachon brauzer yoki mobil ilovaga bermang. code ni faqat backenddan almashtiring.
Har doim state dan foydalaning va uni tekshiring. Har bir kirish uchun yangi tasodifiy state yarating, uni foydalanuvchi sessiyasida saqlang va qiymat mos kelmasa, qaytishni rad eting.
Kod bir martalik va qisqa muddatli. Uni darhol almashtiring — u 5 daqiqa amal qiladi va faqat bir marta ishlatiladi.
redirect_uri uchun HTTPS dan foydalaning.

7. API tavsifi#

7.1 Foydalanuvchini RS-ID avtorizatsiya sahifasiga yo'naltirish#

Saytingiz foydalanuvchi brauzerini RS-ID avtorizatsiya sahifasiga yo'naltiradi.
Metod - GET (brauzer yo'naltirishi)
URL - {auth_page_url}/
Query-parametrlar
MaydonTuriMajburiyUzunlik / formatTavsif
client_idstringHa—RS-ID bergan client_id qiymatingiz.
redirect_uristringHaURL, URL-kodlanganRS-ID foydalanuvchini qaytaradigan manzil. RS-ID'da ro'yxatdan o'tkazilgan redirect_uri bilan aynan mos kelishi kerak.
response_typestringHacodeHar doim code (authorization code flow).
statestringTavsiya etiladiTasodifiy satrSaytingiz ushbu kirish uchun yaratgan tasodifiy qiymat. Kod bilan birga o'zgarishsiz qaytariladi.
Misol
https://auth.rsid.uz/?client_id=shop-example-auth&redirect_uri=https%3A%2F%2Fshop.example.uz%2Fauth%2Frsid%2Fcallback&response_type=code&state=Zx81kQ2mP0

7.2 RS-ID avtorizatsiya sahifasida foydalanuvchi harakatlari#

1.
Avtorizatsiya sahifasi QR-kod ko'rsatadi. Xavfsizlik uchun QR-kod har 30 soniyada qayta yaratiladi — eski QR-koddan foydalanib bo'lmaydi.
2.
Foydalanuvchi RS-ID mobil ilovasini ochadi va QR-kodni skanerlaydi.
3.
Foydalanuvchi ilovada shaxsini tasdiqlaydi (yuz orqali tekshiruv).
4.
Identifikatsiya muvaffaqiyatli bo'lgach, avtorizatsiya sahifasi foydalanuvchini saytingizga qaytaradi (7.3).
Agar foydalanuvchi sahifani yopsa yoki kodni o'z vaqtida skanerlamasa, saytingizga hech narsa yuborilmaydi; foydalanuvchi 7.1 dan qaytadan boshlashi mumkin.

7.3 Saytingizga kod bilan qaytish#

Muvaffaqiyatli kirishdan so'ng RS-ID avtorizatsiya sahifasi foydalanuvchi brauzerini sizning redirect_uri manzilingizga yo'naltiradi:
https://shop.example.uz/auth/rsid/callback?code=Zx81kQ2mP0aB7cD9eF1gH3&state=Zx81kQ2mP0
ParametrTavsif
codeBir martalik avtorizatsiya kodi. 5 daqiqa amal qiladi, bir marta ishlatiladi.
state7.1 da yuborgan qiymatingiz. Uni foydalanuvchi sessiyasida saqlangan qiymat bilan solishtiring; mos kelmasa — kirishni to'xtating.
Callback sahifangiz code (va state) ni backendingizga uzatadi, backend esa 7.4 ni chaqiradi.

7.4 Kod bo'yicha foydalanuvchi ma'lumotlarini olish#

Mijoz backendi avtorizatsiya kodini foydalanuvchining tasdiqlangan profiliga almashtiradi.
Metod - POST
Endpoint - {base_url}/v1/user/by-code — Authorization sarlavhasisiz
Content-Type (sarlavha) - application/json

So'rov tanasi
MaydonTuriMajburiyUzunlik / formatTavsif
client_idstringHaBo'sh emasclient_id qiymatingiz (AUTH loyihasi).
client_secretstringHaBo'sh emasclient_secret qiymatingiz.
codestringHaBo'sh emas7.3 dagi code.
grant_typestringHaauthorization_codeHar doim authorization_code.
{
  "client_id": "shop-example-auth",
  "client_secret": "s3cr3t-value",
  "code": "Zx81kQ2mP0aB7cD9eF1gH3",
  "grant_type": "authorization_code"
}
Javob
MaydonTuriTavsif
data.user_info.first_namestringIsm.
data.user_info.last_namestringFamiliya.
data.user_info.middle_namestringOtasining ismi. Bo'lmasa -.
data.user_info.pinflstringJSHSHIR, 14 ta raqam. Uni foydalanuvchining doimiy identifikatori sifatida ishlating.
data.user_info.genderstringJinsi.
data.user_info.birth_datestringyyyy-MM-dd.
data.user_info.birth_placestringTug'ilgan joyi.
data.document_info.documentstringHujjat seriyasi va raqami.
data.document_info.typestringHujjat turi.
data.document_info.issued_bystringKim tomonidan berilgan.
data.document_info.issued_atstringBerilgan sana, yyyy-MM-dd.
data.document_info.expiry_atstringAmal qilish muddati, yyyy-MM-dd.
data.contact_info.phonestringRS-ID akkauntidagi telefon raqami.
data.contact_info.emailstringRS-ID akkauntidagi email, agar kiritilgan bo'lsa.
data.permanent_addressobjectUshbu oqimda qaytarilmaydi (null).
data.temporary_addressobjectUshbu oqimda qaytarilmaydi (null).
codeintegerMuvaffaqiyatda 0.
messagestringNatija matni.
{
  "data": {
    "user_info": {
      "first_name": "ALISHER",
      "last_name": "KARIMOV",
      "middle_name": "BAXTIYOROVICH",
      "pinfl": "12345678901234",
      "gender": "MALE",
      "birth_date": "1990-01-01",
      "birth_place": "TOSHKENT",
      "birth_country": null,
      "nationality": null,
      "citizenship": null
    },
    "document_info": {
      "document": "AA1234567",
      "type": "PASSPORT",
      "issued_by": "IIV 26283",
      "issued_at": "2018-05-10",
      "expiry_at": "2028-05-09"
    },
    "contact_info": {
      "phone": "998901234567",
      "email": "alisher.karimov@example.uz"
    },
    "permanent_address": null,
    "temporary_address": null
  },
  "code": 0,
  "message": "Success"
}
Xatolar
KodSabab
-1083client_id topilmadi.
-1002Mijoz AUTH loyihasi emas.
-1089grant_type qiymati authorization_code emas.
-1018code yaroqsiz, muddati o'tgan (5 daqiqadan eski) yoki allaqachon ishlatilgan, yoxud client_secret noto'g'ri. Kirishni 7.1 dan qaytadan boshlang.
-1035code kirish bilan bog'lanmagan. Kirishni 7.1 dan qaytadan boshlang.
400Majburiy maydon to'ldirilmagan.

8. Xato kodlari#

KodNomiMa'nosi
0SUCCESSMuvaffaqiyat.
-9SYSTEM_ERRORKutilmagan server xatosi.
-1002CLIENT_NOT_PERMITTEDMijoz AUTH loyihasi emas.
-1018USER_NOT_FOUNDKod yaroqsiz, muddati o'tgan yoki ishlatilgan, yoxud hisob ma'lumotlari noto'g'ri.
-1035INVALID_QR_TOKENKod kirish bilan bog'lanmagan.
-1083CLIENT_PROJECT_NOT_FOUNDclient_id topilmadi.
-1089INVALID_GRAND_TYPEgrant_type qiymati authorization_code emas.
Modified at 2026-11-10 09:22:12
Previous
3-variant — ikki fotosuratni fuqaro ma'lumotlarisiz taqqoslash
Next
QR-kod orqali imzolash
Built with