Skip to content

Auth Service

Auth servisi Platon platformasining asosiy xavfsizlik modulidir. Ushbu servis foydalanuvchilarni tizimga autentifikatsiya qilish, ularning shaxsini tasdiqlash va ruxsat darajalarini boshqarish uchun mas’uldir. Servis barcha boshqa modullar bilan integratsiya qilinadi va umumiy xavfsizlik qatlamini ta’minlaydi.

Auth servisi quyidagi asosiy vazifalarni bajaradi:

  • Foydalanuvchini aniqlash (authentication)
  • Kirish va chiqish jarayonlarini boshqarish
  • Access va Refresh tokenlar generatsiyasi
  • Role va permissionlar orqali ruxsatlarni boshqarish (authorization)
  • Bir nechta kirish usullarini qo‘llab-quvvatlash (email, telefon, OAuth va boshqalar)
  • Xavfsizlik siyosatlari va token muddatlarini nazorat qilish

Ushbu bo‘lim Auth servisining ishlash tamoyillari, konfiguratsiyasi, endpointlari va integratsiya jarayonlari haqida to‘liq ma’lumot beradi.

Kirish Yo‘llari (Login Methods)

Auth servisi foydalanuvchilarni tizimga kirishini va ularning xavfsizligini ta’minlaydi. Platformada bir nechta kirish yo‘llari mavjud bo‘lib, har bir usul alohida parametrlar va xavfsizlik talablariga ega.


1. Email + Parol

  • Tavsif: An’anaviy login usuli.
  • Kerakli parametrlar:
    • email (string) — foydalanuvchi emaili
    • password (string) — foydalanuvchi paroli
  • Natija: Access token (JWT), Refresh token
  • Ruxsat: Foydalanuvchining roli va permissionlariga qarab endpointlarga kirish

2. Telefon + OTP

  • Tavsif: Telefon raqam orqali vaqtinchalik kod (OTP) bilan login qilish.
  • Kerakli parametrlar:
    • phone (string) — foydalanuvchi telefon raqami
    • otp (string) — yuborilgan bir martalik kod
  • Natija: Access token, Refresh token
  • Qo‘shimcha: Ikki faktorli autentifikatsiya (2FA) qo‘llab-quvvatlanadi

3. OAuth2

  • Providerlar
    • Google - Google account orqali kirish.
    • Facebook - Facebook account orqali kirish.
    • OneId - O'zbekiston yagona identifikatsiya tizimi orqali kirish.
    • AppleOauth2 - iCould yoki AppleId orqali kirish
    • KeyCloak - KeyCloak account orqali kirish.
    • Linkedin - Linkedin account orqali kirish.
    • FaceId - Yuz identifikatsiyasi orqali kirish
  • Tavsif: Tashqi OAuth2 provider orqali login qilish
  • Kerakli parametrlar:
    • method — OAuth provider nomi (masalan Google, Facebook)
    • client_id, client_secret, code, redirect_uri va boshqa providerga xos parametrlar
    • (Kerak bo‘lsa) otp — 2FA uchun
  • Natija: Access token, Refresh token
  • Ruxsat: Platforma rol va permissionlariga bog‘liq

4. Elektron Imzo (E-imzo / RS-imzo)

  • Tavsif: Foydalanuvchi E-imzo orqali autentifikatsiya qiladi
  • Kerakli parametrlar:
    • pkcs7 (string) — imzo ma’lumotlari
    • (Kerak bo‘lsa) otp — 2FA kodi
  • Natija: Access token yoki sessiya
  • Qo‘shimcha: Mobil login va timestamp tekshiruvi qo‘llab-quvvatlanadi

5. Refresh Token orqali sessiyani yangilash

  • Tavsif: Avval olingan Refresh token orqali Access token yangilanadi
  • Kerakli parametrlar:
    • refreshToken (string)
  • Natija: Yangi Access token
  • Ruxsat: Foydalanuvchining hozirgi rollari va permissionlari bilan bog‘liq

6. Maxsus Kirish (Admin, Internal, Multi-factor)

  • Foydalanuvchining roli va permissionlari orqali maxsus login variantlari mavjud:
    • Admin yoki operator loginlari
    • Sessiyalarni terminatsiya qilish
    • JWT sozlamalarini yangilash (faqat ruxsatli foydalanuvchilar)

🔑 Qo‘shimcha Xavfsizlik Tamoyillari

  • Parollar shifrlangan holda saqlanadi (Pbkdf2Sha256Hasher yoki MD5)
  • 2FA / OTP orqali ikki faktorli autentifikatsiya qo‘llaniladi
  • Tokenlar (JWT) muddat bilan cheklangan
  • Role va permissionlar har bir kirish yo‘li uchun tekshiriladi

Ushbu bo‘lim Auth servisidagi barcha kirish yo‘llari, ularni ishlatish uchun kerakli parametrlar va xavfsizlik qoidalari haqida umumiy tasavvur beradi.