Backend авторизации для SPA (React) c OAuth (Google/Yandex/VK), PKCE и серверными сессиями (Redis). Данные пользователей и привязок хранятся в Postgres.
- Скопировать переменные окружения:
cp .env.example .env # заполните OAuth-креды и домены/куки - Поднять Postgres и Redis:
docker compose up -d
- Установить зависимости (локально):
python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt - Применить миграции:
alembic upgrade head
- Запустить API:
uvicorn app.main:app --reload # слушает по умолчанию 127.0.0.1:8000
- Старт OAuth:
GET /api/v1/auth/{google|yandex|vk}/start?return_to=/path - Callback (обрабатывается бекендом):
/api/v1/auth/{provider}/callback - Текущий пользователь:
GET /api/v1/auth/me - Выход:
POST /api/v1/auth/logout - Healthcheck:
GET /health
pytest -q- Все секреты задаются через
.env, в коде не хардкодятся. - Сессия хранится в Redis (
gifty_sessionHttpOnly cookie).STATEдля OAuth хранится в Redis 10 минут. - Ответы в snake_case, ошибки:
{ "error": { "code": "...", "message": "...", "fields": {...} } }.
Fetches products from TakProdam API and updates the local PostgreSQL database. Run:
# Make sure .venv is active
python scripts/run_sync.pyGenerates vector embeddings for products using BAAI/bge-m3 model (runs on CPU by default).
Run:
# Make sure .venv is active
python scripts/run_embeddings.pyNote: The first run will download the model (~1GB).