Kitobchi API v1
OpenAPI Postman Kitobchi.com

Kitobchi ID — umumiy

Kitobchi akkaunti bilan boshqa ilovalarga kirish: OAuth 2.1 + OpenID Connect, oqim, endpointlar, scope va claim‘lar, ilovani ulash.

Kitobchi ID nima?

Kitobchi ID — foydalanuvchilarga Kitobchi akkaunti bilan boshqa sayt va ilovalarga bir tugma orqali kirish imkonini beruvchi yagona identifikatsiya tizimi. U ochiq standartlarga asoslangan: OAuth 2.1 (authorization code + PKCE) va OpenID Connect 1.0. Shu sababli istalgan standart OIDC kutubxonasi (AppAuth, openid-client, league/oauth2-client, Spring Security, NextAuth/Auth.js va boshqalar) bilan qo'shimcha kodsiz ishlaydi.

Foydalanuvchi uchun: parol yo'q — telefon raqamiga keladigan SMS kod bilan kiradi, qaysi ma'lumotlar ulashilishini o'zi ko'radi va tasdiqlaydi. Siz uchun: tasdiqlangan telefon raqami, ism va profil rasmi, SMS va akkaunt tiklash bilan shug'ullanmasdan.

Issuer: https://kitobchi.com/api/id
Barcha endpointlarni qo'lda yozmang — ularni discovery hujjatidan oling: https://kitobchi.com/api/id/.well-known/openid-configuration

Kirish oqimi

1

Ilova foydalanuvchini Kitobchi ID'ga yuboradi

/authorize ga state, nonce va PKCE code_challenge bilan yo'naltirasiz. Mobil ilovada — tizim brauzeri (Custom Tabs / ASWebAuthenticationSession), WebView emas.

2

Foydalanuvchi kiradi va rozilik beradi

Telefon raqam → tasdiqlash kodi: foydalanuvchida Kitobchi ilovasi bo'lsa — ilovadagi «Kitobchi» chatiga, bo'lmasa SMS (har ikkisida ilovangiz nomi ko'rsatiladi). Birinchi marta ulanishda so'ralgan ma'lumotlar ro'yxati va ilovangiz domeni ko'rsatiladi. Keyingi kirishlarda — bir bosishda.

3

Ilova bir martalik kod oladi

redirect_uri?code=…&state=…&iss=… — state va iss ni albatta tekshirasiz. Kod 5 daqiqa amal qiladi va faqat bir marta ishlatiladi.

4

Server kodni tokenlarga almashtiradi

/token ga code + code_verifier yuborib access token (10 daqiqa), ID token (1 soat) va kerak bo'lsa refresh token olasiz. ID token imzosini JWKS orqali tekshirib, foydalanuvchini sub bo'yicha tanib olasiz.


Endpointlar

EndpointUsulVazifasi
/.well-known/openid-configurationGETDiscovery — barcha manzillar va imkoniyatlar (1 soat keshlang)
/authorizeGET (brauzer)Kirish va rozilik sahifasi, kod qaytaradi
/tokenPOST (form)Kodni yoki refresh tokenni tokenlarga almashtirish
/userinfoGET/POST + BearerJoriy foydalanuvchi ma'lumotlari (scope bo'yicha)
/jwksGETID va access tokenlarni tekshirish uchun ochiq kalitlar (RS256, kid)
/revokePOST (form)Token bekor qilish (RFC 7009) — chiqishda chaqiring
/logoutGET (brauzer)Kitobchi ID sessiyasini yopish (RP-initiated logout)

Barcha manzillar issuer'ga nisbatan: https://kitobchi.com/api/id/token va hokazo.


Scope va claim'lar

Faqat haqiqatan kerakli ma'lumotni so'rang — har bir qo'shimcha scope rozilik oynasida alohida qator bo'lib chiqadi va konversiyani pasaytiradi. Ilovangizga ruxsat berilgan scope'lar ro'yxatdan o'tishda belgilanadi.

ScopeClaim'larIzoh
openidsubmajburiy Foydalanuvchining doimiy identifikatori
profilename, given_name, family_name, preferred_username, picture, locale, updated_atBo'sh maydonlar javobda bo'lmaydi
phonephone_number (E.164, +998…), phone_number_verifiedKitobchi ID orqali kirgan raqam doim SMS bilan tasdiqlangan
emailemail, email_verifiedIxtiyoriy, ko'pincha tasdiqlanmagan — identifikator sifatida ishlatmang
offline_access—Refresh token beriladi (foydalanuvchi ilovada bo'lmaganda ham sessiyani yangilash)

sub — foydalanuvchi identifikatori

Foydalanuvchini faqat sub bo'yicha bog'lang (bazada issuer + sub juftligini saqlang). Telefon raqam yoki email'ni kalit qilmang — raqamlar almashadi va qayta beriladi.


Ilovani ulash

Hozircha ilovalar Kitobchi jamoasi tomonidan qo'lda ro'yxatdan o'tkaziladi. Quyidagilarni yuboring:

Ma'lumotMisolTalab
Ilova nomi va logotipi (https, kvadrat)«Hamkor do'kon»majburiy
Sayt manzilihttps://hamkor.uzmajburiy
Redirect URI'lar (aniq, to'liq)https://hamkor.uz/auth/kitobchi/callbackmajburiy
Ilova turiserver (confidential) yoki SPA/mobil (public)majburiy
Kerakli scope'lar va sababiopenid profile phonemajburiy
Chiqishdan keyingi URIhttps://hamkor.uz/ixtiyoriy
Texnik aloqa e-pochtasidev@hamkor.uzmajburiy

Javoban client_id (kid_…) va server ilovalar uchun client_secret (kid_cs_…) beriladi. Secret faqat bir marta ko'rsatiladi; bizda faqat uning hash'i saqlanadi — yo'qolsa, yangisi chiqariladi.

Redirect URI qoidalari