Auth API Reference 🔐
Система аутентификации Gifty построена на базе протокола OAuth 2.0 с PKCE. Мы поддерживаем вход через Google, Yandex и VK. Сессии хранятся в Redis и передаются клиенту через HttpOnly Secure куки.
🚀 Протокол входа (Flow)
Для фронтенд-разработчиков процесс входа выглядит так:
1. Перенаправить пользователя на /auth/{provider}/start.
2. Бекенд выполнит редирект на страницу логина провайдера.
3. После успешного входа провайдер вернет юзера на наш Callback.
4. Бекенд установит сессионную куку gifty_session и перенаправит пользователя обратно на фронтенд.
🔑 Эндпоинты
1. Запуск авторизации (/{provider}/start)
Инициирует процесс входа.
- URL:
/api/v1/auth/{provider}/start - Метод:
GET - Параметры:
provider:google,yandexилиvk.return_to(query, optional): URL на фронтенде, куда нужно вернуть пользователя после входа (по умолчанию/).
- Результат: 302 Redirect.
2. Информация о себе (/me)
Проверка статуса текущего пользователя.
- URL:
/api/v1/auth/me - Метод:
GET - Response:
UserDTO - Ошибки:
401 Unauthorized: Если сессия недействительна или отсутствует.
3. Выход (/logout)
Завершение сессии.
- URL:
/api/v1/auth/logout - Метод:
POST - Результат: Удаление куки и очистка данных в Redis.
🛡 Безопасность
- Cookies: Кука
gifty_sessionустанавливается с флагамиHttpOnly,Secure,SameSite=Lax. - PKCE: Используется для защиты от перехвата кода авторизации.
- State: Защита от CSRF атак через проверку состояния.