Token — foydalanuvchi, ilova yoki service’ni tizim oldida tanitish uchun ishlatiladigan maxsus qiymat. Token odatda authentication va authorization jarayonlarida ishlatiladi va so‘rov yuborayotgan tomon kim ekanini aniqlashga yordam beradi.
Token web ilovalar, mobile ilovalar, API, microservice, OAuth, JWT va CI/CD tizimlarida keng qo‘llanadi.
Vazifasi
Token tizimga kelayotgan so‘rovni aniqlash va tekshirish uchun ishlatiladi.
Token quyidagi vazifalarni bajaradi:
- foydalanuvchi login holatini tasdiqlash;
- API so‘rovlarini autentifikatsiya qilish;
- access va refresh jarayonlarini boshqarish;
- foydalanuvchi role yoki permissionlarini uzatish;
- service-to-service aloqani himoyalash;
- parol tiklash jarayonida vaqtinchalik ruxsat berish;
- email tasdiqlashda identifikator sifatida ishlash;
- OAuth va OpenID Connect oqimlarida ishlash;
- CI/CD va integrationlarda maxfiy kalit sifatida qo‘llanish.
Masalan, foydalanuvchi login qilgandan keyin backend access token yaratadi. Frontend keyingi API so‘rovlarida shu tokenni yuboradi.
Token qanday ishlaydi?
Token odatda server tomonidan yaratiladi. Client tokenni saqlaydi va keyingi so‘rovlarda serverga yuboradi. Server tokenni tekshiradi va so‘rov qaysi foydalanuvchi yoki service’ga tegishli ekanini aniqlaydi.
Oddiy jarayon:
- foydalanuvchi login qiladi;
- backend login ma’lumotlarini tekshiradi;
- token yaratadi;
- token frontend yoki mobile ilovaga qaytariladi;
- client keyingi so‘rovlarda tokenni yuboradi;
- backend tokenni tekshiradi;
- token to‘g‘ri bo‘lsa, so‘rov bajariladi;
- token noto‘g‘ri yoki muddati tugagan bo‘lsa, so‘rov rad etiladi.
Token foydalanuvchi yoki service identity’sini vaqtinchalik tasdiqlovchi qiymat sifatida ishlaydi.
Access token
Access token — himoyalangan API yoki resurslarga kirish uchun ishlatiladigan token. U odatda qisqa muddat amal qiladi.
Access token quyidagi joylarda ishlatiladi:
- API endpointlarga murojaat qilish;
- foydalanuvchini aniqlash;
- role va permission tekshirish;
- frontend va backend aloqasida;
- mobile ilova va backend aloqasida;
- OAuth jarayonlarida.
Masalan:
Authorization: Bearer <access_token>
Bu header orqali client backendga access token yuboradi.
Refresh token
Refresh token — access token muddati tugaganda yangi access token olish uchun ishlatiladigan token. Refresh token odatda access tokendan uzoqroq muddat amal qiladi.
Refresh token jarayoni:
- foydalanuvchi login qiladi;
- backend access token va refresh token beradi;
- access token muddati tugaydi;
- client refresh token orqali yangi access token so‘raydi;
- backend refresh tokenni tekshiradi;
- yangi access token qaytariladi.
Refresh token foydalanuvchini tez-tez qayta login qildirmasdan sessionni davom ettirish uchun ishlatiladi.
ID token
ID token — foydalanuvchi kimligi haqida ma’lumot beruvchi token. ID token ko‘pincha OpenID Connect tizimlarida ishlatiladi.
ID token ichida quyidagilar bo‘lishi mumkin:
ID token foydalanuvchini identifikatsiya qilish uchun ishlatiladi, lekin API access uchun har doim ham ishlatilmaydi.
Bearer token
Bearer token — tokenni olib kelgan tomon so‘rov yuborish huquqiga ega deb hisoblanadigan token turi. Bearer token odatda HTTP Authorization headerida yuboriladi.
Misol:
Authorization: Bearer eyJhbGciOi...
Bearer token REST API, OAuth va JWT asosidagi authentication tizimlarida keng uchraydi.
API token
API token — API bilan ishlash uchun beriladigan maxsus token. U foydalanuvchi, ilova yoki service nomidan API so‘rov yuborishda ishlatiladi.
API token quyidagi joylarda qo‘llanadi:
- tashqi API integration;
- botlar;
- server-to-server aloqa;
- webhook;
- automation;
- CI/CD;
- analytics service;
- payment integration.
API token ko‘pincha uzun, tasodifiy va maxfiy qiymat bo‘ladi.
Personal access token
Personal access token — foydalanuvchi nomidan API yoki platforma bilan ishlash uchun yaratiladigan token.
Personal access token quyidagi platformalarda uchraydi:
Masalan, GitHub repositoryga API orqali kirish yoki Git push qilish uchun personal access token ishlatilishi mumkin.
JWT
JWT — JSON Web Token. JWT ichida JSON formatidagi ma’lumotlar saqlanadi va token imzo orqali tekshiriladi.
JWT odatda uch qismdan iborat:
JWT ichida user ID, role, permission, token muddati va boshqa claimlar bo‘lishi mumkin.
Token claim
Claim — token ichidagi ma’lumot maydoni. JWT tokenlarda claimlar foydalanuvchi yoki token haqida ma’lumot beradi.
Claim misollari:
sub— subject, odatda user ID;exp— token muddati tugash vaqti;iat— token yaratilgan vaqt;iss— token bergan server;aud— token mo‘ljallangan audience;role— foydalanuvchi roli;permissions— foydalanuvchi ruxsatlari.
Claimlar authentication va authorization jarayonida ishlatiladi.
Token expiration
Token expiration — tokenning amal qilish muddati tugashi. Token muddati tugaganda server uni qabul qilmaydi.
Expiration quyidagi maqsadlarda ishlatiladi:
- xavfsizlikni oshirish;
- eski tokenlarni yaroqsiz qilish;
- sessiya muddatini boshqarish;
- refresh token mexanizmini ishlatish;
- token tarqalib ketgan holatda xavfni kamaytirish.
Access tokenlar odatda qisqa muddatli, refresh tokenlar esa uzoqroq muddatli bo‘ladi.
Token signature
Signature — tokenning o‘zgartirilmaganini tekshirish uchun ishlatiladigan imzo qismi. JWT’da signature token header va payload ma’lumotlari asosida yaratiladi.
Signature quyidagilarni aniqlashga yordam beradi:
- token server tomonidan yaratilganmi;
- token yo‘lda o‘zgartirilganmi;
- token imzosi to‘g‘rimi;
- token ishonchli manbadan kelganmi.
Agar signature noto‘g‘ri bo‘lsa, token yaroqsiz hisoblanadi.
Token validation
Token validation — tokenni tekshirish jarayoni. Backend har bir himoyalangan so‘rovda tokenni tekshirishi mumkin.
Token validation jarayonida quyidagilar tekshiriladi:
- token mavjudmi;
- token formati to‘g‘rimi;
- signature to‘g‘rimi;
- token muddati tugamaganmi;
- issuer mosmi;
- audience mosmi;
- token blacklistda emasmi;
- kerakli claimlar mavjudmi.
Validationdan o‘tgan token asosida foydalanuvchi yoki service aniqlanadi.
Token blacklist
Token blacklist — bekor qilingan tokenlarni saqlash ro‘yxati. Token hali muddati tugamagan bo‘lsa ham, blacklistda bo‘lsa yaroqsiz hisoblanadi.
Token blacklist quyidagi holatlarda ishlatiladi:
- logout;
- refresh token bekor qilish;
- parol almashtirish;
- account bloklash;
- xavfsizlik hodisasi;
- admin tomonidan session tugatish;
- token o‘g‘irlangani aniqlanishi.
Blacklist ayniqsa JWT kabi stateless tokenlarda logout jarayonini boshqarishda ishlatiladi.
Token revocation
Token revocation — tokenni muddatidan oldin bekor qilish jarayoni.
Token quyidagi holatlarda revoke qilinishi mumkin:
- foydalanuvchi logout qilganda;
- parol o‘zgartirilganda;
- refresh token yangilanganda;
- qurilma sessiyasi o‘chirilganda;
- API kalit bekor qilinganda;
- xavfsizlik xavfi aniqlanganda.
Revocation tokenning keyingi so‘rovlarda ishlashini to‘xtatadi.
Token rotation
Token rotation — eski token o‘rniga yangi token berish jarayoni. Bu ayniqsa refresh tokenlarda ishlatiladi.
Token rotation jarayonida:
- client refresh token yuboradi;
- server uni tekshiradi;
- yangi access token beradi;
- ba’zan yangi refresh token ham beradi;
- eski refresh token yaroqsiz qilinadi.
Token rotation token tarqalib ketgan holatlarda xavfni kamaytirishga yordam beradi.
Opaque token
Opaque token — ichki ma’nosi clientga ko‘rinmaydigan token. U odatda tasodifiy uzun qiymat bo‘ladi va server yoki authorization server orqali tekshiriladi.
Opaque token xususiyatlari:
- client token ichini o‘qiy olmaydi;
- ma’lumot server tomonda saqlanadi;
- introspection orqali tekshirilishi mumkin;
- OAuth tizimlarida uchraydi;
- revoke qilish osonroq bo‘lishi mumkin.
Opaque token JWT’dan farqli ravishda o‘z ichida ochiq payload saqlamaydi.
Stateless token
Stateless token — serverda session holatini saqlamasdan ishlaydigan token. JWT stateless tokenning keng tarqalgan ko‘rinishidir.
Stateless token xususiyatlari:
- token ichida kerakli claimlar bo‘ladi;
- server har safar tokenni tekshiradi;
- alohida session storage talab qilmasligi mumkin;
- scaling jarayonida qulay bo‘lishi mumkin;
- token revoke qilish alohida mexanizm talab qilishi mumkin.
Stateless token microservice va API tizimlarida ishlatiladi.
Stateful token
Stateful token — server tomonda saqlanadigan holatga bog‘liq token. Bunday token odatda session ID yoki opaque token ko‘rinishida bo‘ladi.
Stateful token xususiyatlari:
- token qiymati serverdagi ma’lumotga ishora qiladi;
- server tokenni storage orqali tekshiradi;
- logout yoki revoke qilish osonroq bo‘lishi mumkin;
- Redis, database yoki cache talab qilishi mumkin;
- session-based authentication bilan bog‘liq bo‘ladi.
Stateful token klassik web ilovalarda keng uchraydi.
Token saqlash
Client tokenni turli joylarda saqlashi mumkin. Saqlash usuli ilova turi va xavfsizlik modeliga bog‘liq.
Token saqlanadigan joylar:
- HttpOnly cookie;
- memory;
- localStorage;
- sessionStorage;
- secure mobile storage;
- server-side session;
- environment variable;
- secret manager.
Authentication tokenlari maxfiy qiymat hisoblanadi va ularga ruxsatsiz kirish xavfsizlik muammosiga olib kelishi mumkin.
Cookie’da token
Token cookie ichida saqlanishi mumkin. Bu usul web ilovalarda keng ishlatiladi.
Cookie’da token saqlanganda quyidagilar muhim:
HttpOnly cookie JavaScript orqali token o‘qilishini cheklaydi.
localStorage’da token
Token localStorage ichida saqlanishi mumkin. Bu SPA ilovalarda uchraydi, lekin JavaScript orqali o‘qilishi sababli XSS xavfi bilan bog‘liq.
localStorage xususiyatlari:
- brauzerda uzoqroq saqlanadi;
- JavaScript orqali o‘qiladi;
- serverga avtomatik yuborilmaydi;
- browser yopilgandan keyin ham qolishi mumkin;
- XSS holatida token o‘qilishi mumkin.
Bu usul client-side token boshqaruvi bilan bog‘liq.
sessionStorage’da token
sessionStorage tokenni brauzer tab sessiyasi davomida saqlaydi. Tab yopilganda ma’lumot o‘chadi.
sessionStorage xususiyatlari:
- JavaScript orqali o‘qiladi;
- tab yopilganda o‘chadi;
- serverga avtomatik yuborilmaydi;
- localStorage’ga qaraganda qisqa muddatli;
- XSS xavfi mavjud bo‘lishi mumkin.
sessionStorage vaqtinchalik token saqlashda ishlatilishi mumkin.
Memory’da token
Token frontend ilova xotirasida saqlanishi mumkin. Bunda token sahifa yangilanganda yoki ilova qayta ochilganda yo‘qolishi mumkin.
Memory’da token saqlash xususiyatlari:
- persistent emas;
- JavaScript runtime ichida turadi;
- sahifa reload qilinganda yo‘qoladi;
- XSS xavfini to‘liq yo‘qotmaydi;
- qisqa muddatli access tokenlar uchun ishlatilishi mumkin.
Bu yondashuv ba’zi SPA authentication oqimlarida uchraydi.
Mobile secure storage
Mobile ilovalarda tokenlar maxsus secure storage ichida saqlanishi mumkin.
Mobile secure storage misollari:
- iOS Keychain;
- Android Keystore;
- Encrypted SharedPreferences;
- SecureStore;
- biometric-protected storage.
Mobile authentication tizimlarida access token va refresh tokenlar shu turdagi saqlash joylari bilan boshqarilishi mumkin.
Authorization header
Token API so‘rovlarida ko‘pincha Authorization header orqali yuboriladi.
Misol:
Authorization: Bearer <token>
Bu usulda token request header ichida bo‘ladi va backend uni tekshiradi.
Authorization header quyidagi tokenlar bilan ishlatiladi:
- access token;
- bearer token;
- OAuth token;
- API token;
- JWT.
Query parameter token
Ba’zi tizimlarda token URL query parameter orqali yuborilishi mumkin.
Misol:
https://example.com/verify?token=abc123
Bu usul odatda quyidagi jarayonlarda uchraydi:
- email verification;
- password reset;
- magic link;
- invitation link;
- one-time access link.
Authentication access tokenlarini URL’da uzatish loglar, browser history va referer sababli xavfsizlik muammolariga olib kelishi mumkin.
Email verification token
Email verification token — foydalanuvchi email manzilini tasdiqlash uchun yaratiladigan vaqtinchalik token.
Jarayon:
- foydalanuvchi ro‘yxatdan o‘tadi;
- server verification token yaratadi;
- emailga maxsus link yuboriladi;
- foydalanuvchi linkni bosadi;
- backend tokenni tekshiradi;
- email tasdiqlangan deb belgilanadi.
Bu token odatda qisqa yoki o‘rtacha muddat amal qiladi.
Password reset token
Password reset token — foydalanuvchi parolini tiklash uchun ishlatiladigan vaqtinchalik token.
Password reset token jarayoni:
- foydalanuvchi parol tiklash so‘rovi yuboradi;
- server reset token yaratadi;
- token email yoki SMS orqali yuboriladi;
- foydalanuvchi token orqali yangi parol sahifasiga kiradi;
- backend tokenni tekshiradi;
- yangi parol saqlanadi;
- token yaroqsiz qilinadi.
Bu token odatda bir martalik va muddatli bo‘ladi.
Magic link token
Magic link token — foydalanuvchini parolsiz login qilish uchun yuboriladigan havola ichidagi token.
Magic link jarayoni:
- foydalanuvchi email kiritadi;
- server maxsus login token yaratadi;
- emailga link yuboradi;
- foydalanuvchi linkni ochadi;
- server tokenni tekshiradi;
- foydalanuvchi tizimga kiritiladi.
Magic link token authentication jarayonida vaqtinchalik kirish ruxsatini bildiradi.
CSRF token
CSRF token — foydalanuvchi nomidan ruxsatsiz so‘rov yuborilishini oldini olish uchun ishlatiladigan token.
CSRF token quyidagi jarayonda ishlaydi:
- server maxsus token yaratadi;
- token forma yoki cookie orqali clientga beriladi;
- client muhim so‘rovda tokenni yuboradi;
- server tokenni tekshiradi;
- token noto‘g‘ri bo‘lsa, so‘rov rad etiladi.
CSRF token session-based authentication tizimlarida keng ishlatiladi.
OAuth token
OAuth token — OAuth protokoli orqali beriladigan access yoki refresh token. U foydalanuvchi yoki ilova nomidan tashqi resurslarga kirish uchun ishlatiladi.
OAuth token quyidagi holatlarda uchraydi:
- Google orqali login;
- GitHub API’dan foydalanish;
- Facebook login;
- Microsoft identity;
- third-party app authorization;
- external integrationlar.
OAuth token scope va expiration bilan bog‘liq bo‘ladi.
Scope
Scope — token qanday ruxsatlarga ega ekanini bildiradigan authorization doirasi.
Scope misollari:
read:profile;write:profile;read:email;manage:users;repo;openid.
Masalan, token faqat email o‘qish scope’iga ega bo‘lsa, u profilni tahrirlash huquqini bermaydi.
Token va session farqi
Token va session foydalanuvchi holatini boshqarishda ishlatiladi, lekin ishlash usuli farq qiladi.
- Session odatda server tomonda saqlanadi;
- Token client tomonidan yuboriladigan qiymat sifatida ishlaydi;
- session ID token sifatida ishlashi mumkin;
- JWT token ichida ma’lumot saqlashi mumkin;
- sessionni server storage orqali bekor qilish osonroq;
- stateless token alohida session storage talab qilmasligi mumkin.
Har ikki yondashuv authentication jarayonlarida ishlatiladi.
Token va cookie farqi
Cookie tokenni saqlash yoki uzatish vositasi bo‘lishi mumkin. Token esa authentication yoki authorization qiymatidir.
Farqlar:
- Cookie brauzer saqlash mexanizmi;
- Token ruxsat yoki identity qiymati;
- token cookie ichida saqlanishi mumkin;
- cookie serverga avtomatik yuboriladi;
- token header orqali ham yuborilishi mumkin;
- cookie domain, path va flaglarga ega bo‘ladi.
Masalan, JWT token HttpOnly cookie ichida saqlanishi mumkin.
Token va API
API token orqali so‘rov yuborayotgan foydalanuvchi yoki service’ni aniqlaydi.
API’da token quyidagilar uchun ishlatiladi:
- protected endpointlarni himoyalash;
- foydalanuvchi profilini aniqlash;
- role va permission tekshirish;
- rate limit hisoblash;
- service integration;
- third-party access;
- webhook security.
Masalan, GET /api/profile so‘rovi access token orqali qaysi foydalanuvchi profilini qaytarishni aniqlaydi.
Token va microservice
Microservice arxitekturasida token service’lar orasidagi ishonch va ruxsatni boshqarishda ishlatiladi.
Microservice tokenlari quyidagilar uchun ishlatiladi:
- user context uzatish;
- service-to-service authorization;
- internal API himoyasi;
- gateway orqali authentication;
- distributed permission checking;
- audit log uchun identity uzatish.
Masalan, API Gateway tokenni tekshiradi va user ma’lumotlarini ichki service’larga uzatadi.
Token va CI/CD
CI/CD tizimlarida token deployment, registry, repository va cloud service’larga kirish uchun ishlatiladi.
CI/CD tokenlari quyidagilarda uchraydi:
- GitHub Actions secret;
- Docker registry token;
- cloud access token;
- deployment token;
- SSH token;
- package registry token;
- webhook secret.
Bunday tokenlar maxfiy qiymat sifatida saqlanadi va pipeline ichida ishlatiladi.
Token xavfsizligi
Token maxfiy qiymat bo‘lgani uchun uning xavfsizligi muhim hisoblanadi.
Token xavfsizligida quyidagilar uchraydi:
- tokenni kodga yozmaslik;
- tokenni logga chiqarmaslik;
- HTTPS orqali yuborish;
- muddat belgilash;
- refresh tokenni alohida himoyalash;
- kerak bo‘lsa tokenni revoke qilish;
- minimal scope berish;
- secret manager ishlatish;
- XSS va CSRF xavflarini hisobga olish.
Token tarqalib ketsa, u orqali foydalanuvchi yoki service nomidan so‘rov yuborilishi mumkin.
Token leak
Token leak — tokenning ruxsatsiz odam yoki tizim qo‘liga tushib qolishi.
Token leak quyidagi joylarda yuz berishi mumkin:
- public Git repository;
- browser localStorage;
- server loglari;
- URL query parameter;
- screenshot;
- xato konfiguratsiya;
- zararli extension;
- XSS hujumi;
- noto‘g‘ri CI/CD secret sozlamasi.
Token leak authentication va authorization tizimlariga xavf tug‘diradi.
Dasturlashdagi o‘rni
Token zamonaviy web, mobile, API va distributed tizimlarda identity va access boshqaruvi uchun ishlatiladigan muhim mexanizmdir. U authentication, authorization, session, integration va deployment jarayonlari bilan bog‘liq ishlaydi.
Token quyidagi loyihalarda uchraydi:
- web ilovalar;
- mobile ilovalar;
- REST API;
- GraphQL API;
- microservice tizimlar;
- OAuth login;
- admin panellar;
- SaaS platformalar;
- CI/CD pipeline;
- cloud integrationlar.
Token foydalanuvchi, ilova yoki service’ni tizim oldida tanitish va ruxsatlarni boshqarish uchun ishlatiladigan asosiy xavfsizlik elementlaridan biridir.
Bog‘liq tushunchalar
Authentication, Authorization, Session, Cookie, JWT, OAuth, Access token, Refresh token, API key, CSRF token, Bearer token, Security