SI kurslarini ro‘yxatdan o‘tmasdan ochadigan Telegram mini-ilovasi
BiliMind vebda, Android va iOS ilovalari sifatida hamda Telegram ichida ishlaydi. Bu keys Telegram orqali kirish nuqtasi haqida: BiliMind SI kurs generatori uchun mini-ilova chatdan ochiladi, o‘quvchini sezdirmasdan tizimga kiritadi va to‘g‘ridan-to‘g‘ri bugungi darslar va takrorlashlar ko‘rsatilgan «Today» ekraniga olib boradi. Ro‘yxatdan o‘tish formasi yo‘q. O‘quvchining Telegram akkaunti uning BiliMind akkauntiga aylanadi.
Bu ataylab chat-bot qilinmagan. Bu so‘zning to‘liq ma’nosidagi Telegram mini-ilova ishlab chiqish: identifikatsiya, sessiyalarni boshqarish va Telegram webview’i ichida ishlaydigan to‘laqonli Nuxt veb-ilovasi.
Asosiy imkoniyatlar
- Sezdirmasdan kirish — ishga tushirishda Telegram imzolagan
initDataBiliMind sessiyasiga almashtiriladi, shuning uchun o‘quvchi login formasini umuman ko‘rmaydi. - Imzo va qayta yuborishni tekshirish — Telegram talab qilgan tartibda HMAC-SHA256 tekshiruvi, heshlarni o‘zgarmas vaqtda solishtirish va
auth_dateuchun sukut bo‘yicha 24 soatlik amal qilish oynasi. - Bir vaqtdagi so‘rovlarga chidamli akkauntlar — foydalanuvchilar Telegram ID bo‘yicha
createOrFirstorqali topiladi yoki yaratiladi, shuning uchun ilovani bir vaqtda ikki marta ochish hech qachon takroriy akkaunt yaratmaydi. - Yagona akkaunt modeli — yangi Telegram foydalanuvchisi shaxsiy «bir kishilik tashkilot» va Sanctum tokeni oladi, javob esa email orqali kirishdagi javob bilan bir xil tuzilgan, shuning uchun frontend ikkala yo‘lni bir xilda qayta ishlaydi.
- Chuqur havolalar hisobga olinadi — bosh sahifa, kirish yoki ro‘yxatdan o‘tish sahifasiga tushadigan ishga tushirishlar to‘g‘ridan-to‘g‘ri «Today»ga o‘tadi, ulashilgan kurs yoki aniq darsga olib boradigan havolalar esa o‘zi ko‘rsatgan joyda ochiladi.
- Veb-foydalanuvchilar uchun ortiqcha yuk yo‘q — Telegram SDK har bir sahifada bloklovchi skript sifatida emas, faqat mini-ilova ishga tushgani aniqlangandan keyin, talab bo‘yicha yuklanadi.
Qanday ishlaydi
Laravel backend
POST /api/auth/telegram ochiq bo‘lishi shart, chunki tokenni aynan shu endpoint chiqaradi. Shuning uchun u kirish va ro‘yxatdan o‘tishdagi so‘rovlar cheklovchisidan (rate limiter) birga foydalanadi. TelegramService ma’lumot maydonlarini saralab, data-check satrini tuzadi, maxfiy kalitni bot tokenidan hosil qiladi, heshlarni hash_equals bilan solishtiradi va auth_date bo‘lmasa, ma’lumotni eskirgan deb hisoblaydi. Foydalanuvchi allaqachon mavjud bo‘lsa, uning keshlangan Telegram username’i yangilanadi, shaxsiy tashkiloti yo‘q bo‘lsa, qayta tiklanadi. Faqat ishlab chiqish uchun mo‘ljallangan aylanib o‘tish rejimi jarayonni haqiqiy botsiz lokal ishga tushirish imkonini beradi va production’da o‘chiq turadi. Telegram ID bo‘yicha «topish yoki yaratish» andozasi — Bronjoy’da ishlatadiganimizning xuddi o‘zi.
Nuxt frontend
Telegram’ning ishga tushirish signallari mo‘rt. #tgWebAppData heshi mijoz tomonidagi birinchi navigatsiyadayoq yo‘qoladi, window.Telegram.WebApp.initData esa faqat SDK ishga tushgandan keyin paydo bo‘ladi. Biz mini-ilova kontekstini shu signallardan biri paydo bo‘lgan zahoti uzoq muddatli cookie’da saqlaymiz — u 30 kunlik avtorizatsiya cookie’sidan ham uzoqroq yashaydi. Shu tufayli eskirgan token bilan qayta ochilgan webview login formasiga qaytarib yuborilmaydi, balki initData orqali qayta avtorizatsiyadan o‘tadi. Telegram webview’ining o‘z cookie ombori bor, shuning uchun bu belgi oddiy brauzerga hech qachon o‘tib ketmaydi.
Mijoz plagini global avtorizatsiya himoyasidan (auth guard) oldin ishlaydi, bir vaqtda murojaat qilgan chaqiruvlar bitta bajarilayotgan kirish so‘rovidan birga foydalanadi, ilova esa ekran balandligini to‘liq egallash uchun ready() va expand() ni chaqiradi. Oddiy brauzerda yoki mobil ilovaning native qobig‘ida bularning barchasi hech narsa qilmaydigan bo‘sh chaqiruvlarga aylanadi.
Bizning rolimiz
O‘zimizning BiliMind mahsulotimiz doirasida biz mini-ilova orqali kirishni boshidan oxirigacha loyihaladik va yaratdik: Laravel endpoint’i va tekshiruv xizmati, shuningdek, Nuxt’dagi aniqlash va sessiya mantig‘i.
O‘xshash ishlar
Kurs generatorining o‘zi asosiy BiliMind keysida yoritilgan. Bu ish Telegram-botlar yaratish va veb-ilovalar yaratish xizmatlarimiz doirasiga kiradi, Bronjoy Telegram bron qilish boti esa yozilishlar uchun qurilgan bot va mini-ilovani ko‘rsatadi.



