Skip to content

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 ──▶ user

Oldindan kerak bo’ladi

NimaQayerdan
client_idPRO GROUP Manager
client_secretPRO GROUP Manager (maxfiy)
redirect_uriSiz belgilaysiz, Manager ro’yxatdan o’tkazadi
  1. Ilovani ro’yxatdan o’tkazing

    client_id, client_secret olish va callback (redirect_uri) manzilingizni ro’yxatdan o’tkazish uchun menejerga murojaat qiling:

    PRO GROUP Manager →

  2. 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=code
    ParametrMajburiyTavsif
    client_idManager bergan Client ID
    redirect_uriRo’yxatdan o’tgan callback manzili (URL-encoded)
    response_typeHar doim code

    Misol:

    https://id.sfere.pro/oauth?client_id=55&redirect_uri=https%3A%2F%2Fyourapp.com%2Fcallback&response_type=code

    Foydalanuvchi ProID sahifasida kiradi:

    ProID authorize sahifasi

    So’ng kirmoqchi bo’lgan hisobini tanlaydi:

    Hisobni tanlash

  3. Callback orqali code ni qabul qiling

    Foydalanuvchi ruxsat bergach, ProID sizning redirect_uriingizga code query parametri bilan qaytadi:

    Callback so'rovi

    https://yourapp.com/callback?code=SIZNING_CODE
  4. code ni access token’ga almashtiring

    Bu so’rov backend’da bajariladi (client_secret maxfiy).

    Endpoint: POST https://api.id.sfere.pro/api/v2/oauth/token

    ParametrTypeTavsif
    grant_typestringHar doim authorization_code
    client_idstringClient ID
    client_secretstringClient Secret
    redirect_uristringAuthorize’dagi bilan aynan bir xil
    codestringCallback’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'

    Javob (200 OK):

    {
    "token_type": "Bearer",
    "expires_in": 864000,
    "access_token": "42|Xr8kQ...token..."
    }
  5. Foydalanuvchi ma’lumotini oling

    Endpoint: GET https://api.id.sfere.pro/api/user

    Terminal 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.