Skip to content

OAuth 2.0: umumiy ma'lumot ​

OAuth 2.0 ilovangizga Bito API'ga mijoz akkaunti nomidan murojaat qilish imkonini beradi. Bito bergan tokenlar akkaunt kontekstini olib yuradi, shuning uchun har bir murojaat avtomatik ravishda o'sha mijozning ma'lumoti bilan cheklanadi — akkaunt identifikatorini o'zingiz yuborishingiz shart emas.

TIP

Agar siz faqat bitta akkaunt — o'zingizniki — bilan ishlasangiz, OAuth kerak emas. api-key sarlavhasidan foydalaning, qarang: API bilan ishlash.

Kod olishning ikki yo'li ​

Avtorizatsiya kodini olishning ikki yo'li bor. Ikkalasi ham bir xil token endpointiga olib boradi va bir xil access_token + refresh_token juftligini beradi.

Nima yaratyapsizOqimKim boshlaydi
Mijozlar Bito ichidan o'rnatadigan marketplace integratsiyasiO'rnatish oqimi (Flow A)Mijoz, Bito panelida
O'z mahsulotingiz, unda mijoz sizning interfeysingizda "Bito'ga ulanish"ni bosadiUlanish oqimi (Flow B)Sizning ilovangiz
Sizni allaqachon o'rnatgan mijoz uchun foydalanuvchisiz fon vazifasiClient credentialsSizning serveringiz
text
                    Flow A                          Flow B
             (Bito boshlaydi)                 (siz boshlaysiz)

  Mijoz Bito'da "O'rnatish"ni         Mijoz ilovangizda "Ulanish"ni
  bosadi                             bosadi
                |                                   |
                v                                   v
  Bito redirect_uri'ingizga kodni     Siz id.bito.uz'ga yo'naltirasiz,
  POST qiladi                        mijoz kiradi, Bito uni ?code= bilan
                |                    qaytaradi
                |                                   |
                +-----------------+-----------------+
                                  |
                                  v
                     POST /auth/oauth/token
                     (grant_type=authorization_code)
                                  |
                                  v
                   access_token + refresh_token

Huquqlar (scopes) ​

Scope mijoz sizga qancha huquq berishini belgilaydi.

ScopeQiymatTavsif
AdminadminBarcha resurslarga to'liq administrativ kirish
ReadreadFaqat o'qish
WritewriteYaratish va o'zgartirish
DeletedeleteO'chirish

Ruxsatlar: haqiqiy nazorat ​

Tokendagi scope'ning o'zi so'rovni cheklamaydi. Integration API'ga har bir so'rov — OAuth tokeni bilanmi yoki api-key bilanmi — quyidagilar bo'yicha tekshiriladi:

  1. required_permissions → granted_permissions. Ilovangiz Integration API'da foydalanadigan ERP ruxsatlarini (required_permissions, rollardagi kalitlar bilan bir xil) e'lon qiladi. Mijoz o'rnatishdan oldin aynan shu ro'yxatni ko'radi, o'rnatish esa uning nusxasini integratsiyaga granted_permissions sifatida yozadi. Har bir so'rov shu nusxa bo'yicha tekshiriladi: ruxsat bo'lmasa, so'rov rad etiladi. Keyinroq required_permissionsni o'zgartirsangiz, bu allaqachon o'rnatilgan akkauntga faqat u qayta o'rnatganda ta'sir qiladi. Bo'sh ro'yxat — barcha ruxsatlar.
  2. available_scopes. Mijozingizda available_scopes berilgan bo'lsa, so'rov amaliga mos scope (read, write yoki delete; admin hammasini qamraydi) shu ro'yxatda bo'lishi kerak, aks holda so'rov rad etiladi. Ro'yxat bo'sh bo'lsa, bu tekshiruv o'tkazib yuboriladi.

Eng tor ishlaydigan required_permissions ro'yxatini e'lon qiling — mijoz o'rnatishdan oldin nimaga rozilik berayotganini aynan shundan ko'radi.

Endpointlar ​

MetodYo'lAvtorizatsiyaVazifa
POST/auth/oauth/authYo'qClient credentials
POST/auth/oauth/tokenYo'qKodni almashtirish yoki yangilash
POST/auth/get-one-time-tokenBearer (foydalanuvchi sessiyasi)Bir martalik token

Host: prodda https://api.bito.uz, devda https://api.systematicdev.uz.

Bito 2.0 Integration API