| Holat | Misol |
|---|---|
| Parolsiz kirish | Foydalanuvchilar RS-ID ilovasida QR-kodni skanerlab, veb-portalingizga kiradi. |
| Tasdiqlangan ro'yxatdan o'tish | Yangi foydalanuvchi bir qadamda ro'yxatdan o'tadi; akkaunt tasdiqlangan F.I.Sh., JSHSHIR va hujjat ma'lumotlari bilan yaratiladi. |
| Muhim xizmatlarga kirish | Har bir kirishda haqiqiy, tasdiqlangan shaxs talab qilinadigan bank, sug'urta, davlat yoki tibbiyot portallari. |
| Bir nechta xizmat uchun yagona shaxs | Bir xil RS-ID shaxsi bir nechta mahsulotlaringizga kirish uchun ishlatiladi. |
| Atama | Kim / 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. |
| Foydalanuvchi | Tizimga kirayotgan inson — RS-ID mobil ilovasi o'rnatilgan mijozingiz. |
| RS-ID avtorizatsiya sahifasi | Foydalanuvchi QR-kodni skanerlaydigan RS-ID veb-sahifasi. |
| RS-ID mobil ilovasi | Foydalanuvchi telefonidagi RS-ID ilovasi; u orqali QR-kod skanerlanadi va shaxs tasdiqlanadi. |
| Server | Avtorizatsiya 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_uri | RS-ID foydalanuvchini code bilan qaytaradigan saytingizdagi URL. RS-ID'da ro'yxatdan o'tkazilgan bo'lishi kerak. |
state | Saytingiz har bir kirish uchun yaratadigan va qaytishda tekshiradigan tasodifiy qiymat — CSRF hujumlaridan himoya. |
| JSHSHIR (PINFL) | Jismoniy shaxsning shaxsiy identifikatsiya raqami — 14 ta raqam. |
client_id, redirect_uri, response_type=code va state parametrlari bilan RS-ID avtorizatsiya sahifasiga yo'naltiradi (7.1).code va state bilan sizning redirect_uri manzilingizga yo'naltiradi (7.3).state ni tekshiradi va POST /v1/user/by-code orqali code ni foydalanuvchi profiliga almashtiradi (7.4).| Muhit | RS-ID avtorizatsiya sahifasi | API bazaviy URL |
|---|---|---|
| Stage (test) | https://auth.stage.rsid.uz | https://sdk.stage.rsid.uz/web/api |
| Production | https://auth.rsid.uz | https://sdk.rsid.uz/web/api |
client_id / client_secret ishlatiladi. redirect_uri har bir muhit uchun alohida ro'yxatdan o'tkaziladi.{ "data": { }, "code": 0, "message": "Success" }| Maydon | Turi | Tavsif |
|---|---|---|
code | integer | 0 — muvaffaqiyat. Boshqa har qanday qiymat — xato (xatolar jadvaliga qarang). Faqat HTTP-statusni emas, har doim code ni tekshiring. |
message | string | So'rov tilidagi matn (uz / ru / en). Uni dasturiy tahlil qilmang. |
data | any | Javob ma'lumotlari. Xato bo'lganda yo'q. |
client_secret faqat backendingizda saqlanadi. Uni hech qachon brauzer yoki mobil ilovaga bermang. code ni faqat backenddan almashtiring.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.redirect_uri uchun HTTPS dan foydalaning.GET (brauzer yo'naltirishi){auth_page_url}/| Maydon | Turi | Majburiy | Uzunlik / format | Tavsif |
|---|---|---|---|---|
client_id | string | Ha | — | RS-ID bergan client_id qiymatingiz. |
redirect_uri | string | Ha | URL, URL-kodlangan | RS-ID foydalanuvchini qaytaradigan manzil. RS-ID'da ro'yxatdan o'tkazilgan redirect_uri bilan aynan mos kelishi kerak. |
response_type | string | Ha | code | Har doim code (authorization code flow). |
state | string | Tavsiya etiladi | Tasodifiy satr | Saytingiz ushbu kirish uchun yaratgan tasodifiy qiymat. Kod bilan birga o'zgarishsiz qaytariladi. |
https://auth.rsid.uz/?client_id=shop-example-auth&redirect_uri=https%3A%2F%2Fshop.example.uz%2Fauth%2Frsid%2Fcallback&response_type=code&state=Zx81kQ2mP0redirect_uri manzilingizga yo'naltiradi:https://shop.example.uz/auth/rsid/callback?code=Zx81kQ2mP0aB7cD9eF1gH3&state=Zx81kQ2mP0| Parametr | Tavsif |
|---|---|
code | Bir martalik avtorizatsiya kodi. 5 daqiqa amal qiladi, bir marta ishlatiladi. |
state | 7.1 da yuborgan qiymatingiz. Uni foydalanuvchi sessiyasida saqlangan qiymat bilan solishtiring; mos kelmasa — kirishni to'xtating. |
code (va state) ni backendingizga uzatadi, backend esa 7.4 ni chaqiradi.POST{base_url}/v1/user/by-code — Authorization sarlavhasisizapplication/json| Maydon | Turi | Majburiy | Uzunlik / format | Tavsif |
|---|---|---|---|---|
client_id | string | Ha | Bo'sh emas | client_id qiymatingiz (AUTH loyihasi). |
client_secret | string | Ha | Bo'sh emas | client_secret qiymatingiz. |
code | string | Ha | Bo'sh emas | 7.3 dagi code. |
grant_type | string | Ha | authorization_code | Har doim authorization_code. |
{
"client_id": "shop-example-auth",
"client_secret": "s3cr3t-value",
"code": "Zx81kQ2mP0aB7cD9eF1gH3",
"grant_type": "authorization_code"
}| Maydon | Turi | Tavsif |
|---|---|---|
data.user_info.first_name | string | Ism. |
data.user_info.last_name | string | Familiya. |
data.user_info.middle_name | string | Otasining ismi. Bo'lmasa -. |
data.user_info.pinfl | string | JSHSHIR, 14 ta raqam. Uni foydalanuvchining doimiy identifikatori sifatida ishlating. |
data.user_info.gender | string | Jinsi. |
data.user_info.birth_date | string | yyyy-MM-dd. |
data.user_info.birth_place | string | Tug'ilgan joyi. |
data.document_info.document | string | Hujjat seriyasi va raqami. |
data.document_info.type | string | Hujjat turi. |
data.document_info.issued_by | string | Kim tomonidan berilgan. |
data.document_info.issued_at | string | Berilgan sana, yyyy-MM-dd. |
data.document_info.expiry_at | string | Amal qilish muddati, yyyy-MM-dd. |
data.contact_info.phone | string | RS-ID akkauntidagi telefon raqami. |
data.contact_info.email | string | RS-ID akkauntidagi email, agar kiritilgan bo'lsa. |
data.permanent_address | object | Ushbu oqimda qaytarilmaydi (null). |
data.temporary_address | object | Ushbu oqimda qaytarilmaydi (null). |
code | integer | Muvaffaqiyatda 0. |
message | string | Natija 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"
}| Kod | Sabab |
|---|---|
-1083 | client_id topilmadi. |
-1002 | Mijoz AUTH loyihasi emas. |
-1089 | grant_type qiymati authorization_code emas. |
-1018 | code yaroqsiz, muddati o'tgan (5 daqiqadan eski) yoki allaqachon ishlatilgan, yoxud client_secret noto'g'ri. Kirishni 7.1 dan qaytadan boshlang. |
-1035 | code kirish bilan bog'lanmagan. Kirishni 7.1 dan qaytadan boshlang. |
400 | Majburiy maydon to'ldirilmagan. |
| Kod | Nomi | Ma'nosi |
|---|---|---|
0 | SUCCESS | Muvaffaqiyat. |
-9 | SYSTEM_ERROR | Kutilmagan server xatosi. |
-1002 | CLIENT_NOT_PERMITTED | Mijoz AUTH loyihasi emas. |
-1018 | USER_NOT_FOUND | Kod yaroqsiz, muddati o'tgan yoki ishlatilgan, yoxud hisob ma'lumotlari noto'g'ri. |
-1035 | INVALID_QR_TOKEN | Kod kirish bilan bog'lanmagan. |
-1083 | CLIENT_PROJECT_NOT_FOUND | client_id topilmadi. |
-1089 | INVALID_GRAND_TYPE | grant_type qiymati authorization_code emas. |