OAuth 2.0 qo'llanmasi
Bu qo’llanma ProID bilan authorization_code oqimini boshidan oxirigacha yig’ib beradi. Umumiy oqim:
Foydalanuvchi ──▶ ProID authorize ──▶ redirect_uri?code=... ──▶ (backend) token ──▶ userOldindan kerak bo’ladi
| Nima | Qayerdan |
|---|---|
client_id | PRO GROUP Manager |
client_secret | PRO GROUP Manager (maxfiy) |
redirect_uri | Siz belgilaysiz, Manager ro’yxatdan o’tkazadi |
-
Ilovani ro’yxatdan o’tkazing
client_id,client_secretolish va callback (redirect_uri) manzilingizni ro’yxatdan o’tkazish uchun menejerga murojaat qiling: -
Foydalanuvchini authorize sahifasiga yo’naltiring
Brauzerni quyidagi manzilga yo’naltiring (GET):
https://id.sfere.pro/oauth?client_id=YOUR_CLIENT_ID&redirect_uri=YOUR_REDIRECT_URI&response_type=codeParametr Majburiy Tavsif client_id✅ Manager bergan Client ID redirect_uri✅ Ro’yxatdan o’tgan callback manzili (URL-encoded) response_type✅ Har doim codeMisol:
https://id.sfere.pro/oauth?client_id=55&redirect_uri=https%3A%2F%2Fyourapp.com%2Fcallback&response_type=codeFoydalanuvchi ProID sahifasida kiradi:

So’ng kirmoqchi bo’lgan hisobini tanlaydi:

-
Callback orqali
codeni qabul qilingFoydalanuvchi ruxsat bergach, ProID sizning
redirect_uriingizgacodequery parametri bilan qaytadi:
https://yourapp.com/callback?code=SIZNING_CODE -
codeni access token’ga almashtiringBu so’rov backend’da bajariladi (
client_secretmaxfiy).Endpoint:
POST https://api.id.sfere.pro/api/v2/oauth/tokenParametr Type Tavsif grant_typestring Har doim authorization_codeclient_idstring Client ID client_secretstring Client Secret redirect_uristring Authorize’dagi bilan aynan bir xil codestring Callback’dan olingan kod Terminal window curl -X POST 'https://api.id.sfere.pro/api/v2/oauth/token' \-H 'Content-Type: application/x-www-form-urlencoded' \--data-urlencode 'grant_type=authorization_code' \--data-urlencode 'client_id=YOUR_CLIENT_ID' \--data-urlencode 'client_secret=YOUR_CLIENT_SECRET' \--data-urlencode 'redirect_uri=YOUR_REDIRECT_URI' \--data-urlencode 'code=YOUR_CODE'const res = await fetch("https://api.id.sfere.pro/api/v2/oauth/token", {method: "POST",headers: { "Content-Type": "application/x-www-form-urlencoded" },body: new URLSearchParams({grant_type: "authorization_code",client_id: process.env.PROID_CLIENT_ID,client_secret: process.env.PROID_CLIENT_SECRET,redirect_uri: "https://yourapp.com/callback",code,}),});const { access_token } = await res.json();$res = Http::asForm()->post('https://api.id.sfere.pro/api/v2/oauth/token', ['grant_type' => 'authorization_code','client_id' => env('PROID_CLIENT_ID'),'client_secret' => env('PROID_CLIENT_SECRET'),'redirect_uri' => 'https://yourapp.com/callback','code' => $code,]);$accessToken = $res->json('access_token');Javob (
200 OK):{"token_type": "Bearer","expires_in": 864000,"access_token": "42|Xr8kQ...token..."} -
Foydalanuvchi ma’lumotini oling
Endpoint:
GET https://api.id.sfere.pro/api/userTerminal window curl 'https://api.id.sfere.pro/api/user' \-H 'Authorization: Bearer YOUR_ACCESS_TOKEN'Javob (
200 OK):{"id": 128,"name": "Ali","surname": "Valiyev","phone_number": "998991234567","email": "ali@example.com","avatar_full_url": "https://api.id.sfere.pro/storage/avatars/abc.png","date_of_birth": "1998-05-12","gender": "male","avatar": "https://api.id.sfere.pro/storage/avatars/abc.png","is_admin": 0}
Tayyor!
Endi access_token va foydalanuvchi ma’lumoti bilan o’z tizimingizda sessiya yaratasiz. access_token ~10 kun (expires_in: 864000 soniya) amal qiladi.