Перейти до вмісту

Автентифікація

ПолеЗначення
Статус🟢 prod
Поверхніweb (прив’язка акаунта — спільна поверхня з ботом)
Доступністьбезкоштовно
ВласникTODO:
Останнє підтвердження2026-06-13 · curl (live) + код:main

Дає абітурієнту акаунт: вхід через Google, JWT-сесія, після логіну відкриваються кабінет/профіль, обрані спеціальності та збережені оффери (картки — див. індекс).

Точка входу: https://abitly.org/uk/auth/login (кнопки «Увійти» / «Зареєструватися» в хедері; обидві сторінки live 200).

  1. Єдиний метод входу — кнопка Google (форм email/пароль на live-сторінці немає).
  2. OAuth-редирект → consent → повернення на /auth/callback.
  3. Callback читає isRegistrationComplete: true → збережений returnUrl або головна; false/auth/register/complete-profile (дозаповнення анкети) → /auth/register/completed.
  4. Сесія: JWT access + refresh у cookies, тихе оновлення через POST /auth/refresh.

Гейтинг: неавторизований запит /uk/profile → 307 на /uk/auth/login (перевірено curl 2026-06-13).

Прив’язка Telegram: deep-link з бота веде на /auth/telegram-connect?telegramId=…; сторінка вимагає активної web-сесії і викликає POST /telegram-user/connect-to-web-user/:telegramId.

Sequence-діаграма OAuth → data-flows. Деталі JWT (TTL, секрети), Telegram initDataінтеграція Auth.

ДжерелоЕндпоінт / entityПризначення
api-v2GET /auth/google, GET /auth/google/redirectстарт OAuth + callback (мінтить JWT-cookies)
api-v2POST /auth/refresh, POST /auth/logout, POST /auth/complete-registrationжиттєвий цикл сесії та реєстрації
api-v2POST /telegram-user/connect-to-web-user/:telegramId, POST /auth/telegram/*прив’язка та реєстрація з боку бота

Strapi не задіяний.

Зв’язки з іншими фічами

Section titled “Зв’язки з іншими фічами”
  • Особистий кабінет / профіль, обрані спеціальності, збережені оффери — гейтяться цією фічею (див. індекс).
  • Deep-links до Telegram-бота — вхідна точка сценарію прив’язки.
РепоШляхПримітка
abitly-frontend-v2src/app/[locale]/auth/**login / register / callback / telegram-connect
abitly-frontend-v2src/api/auth/, src/api/core/fetchWithAuth.tsклієнт auth, cookie-сесія, refresh
abitly-api-v2src/api/auth/ (+ guards/), src/api/telegram-user/контролер, JwtGuard/GoogleAuthGuard/OptionalJwtAuthGuard
  • Єдиний метод входу на web — Google OAuth; email/пароль немає.
  • Прив’язка Telegram: сторінка live, але TODO: наскрізний сценарій бот → web end-to-end не підтверджений (див. data-flows і картку бота).
  • Помилка OAuth → редирект на returnUrl (дефолт /materials) з ?authError=1.
ДатаПодіяДжерело
2026-06-13Картку створено за discovery (live curl + код main обох репо)skill document-feature