Авторизация

В сервисе есть два уровня доступа: cookie-сессия для кабинета и Bearer API-ключ для серверной оптимизации.

Какой способ использовать

СценарийСпособГде применяется
Личный кабинетCookie sidПрофиль, ключи, оплата, статистика.
Backend-интеграцияAuthorization: Bearer sk_live_...POST /v1/optimize и серверные запросы к Optimize API.

Запрос кода входа

POST /v1/auth/request-code
curl -X POST "https://imgfix.ru/v1/auth/request-code" \
  -H "Content-Type: application/json" \
  -d '{ "email": "user@gmail.com" }'

Код действует 10 минут. Email нормализуется: домен проверяется по whitelist, часть после + в local-part отбрасывается.

Подтверждение кода

POST /v1/auth/verify-code
curl -i -X POST "https://imgfix.ru/v1/auth/verify-code" \
  -H "Content-Type: application/json" \
  -d '{ "email": "user@gmail.com", "code": "123456" }'
{
  "success": true,
  "user_id": "..."
}

При успехе gateway ставит HttpOnly cookie sid. Эта cookie нужна для кабинета и методов управления ключами.

Проверка сессии и выход

МетодНазначениеАвторизация
GET /v1/meВозвращает email, план и остаток платной квоты.Cookie sid
POST /v1/auth/logoutУдаляет server-side session и сбрасывает cookie.Cookie sid

Типовые ошибки

HTTPКодПричина
400invalid_emailEmail пустой или не похож на адрес.
400email_domain_not_allowedДомен email не входит в whitelist.
401invalid_codeКод неверный или истёк.
401auth_requiredНет действующей cookie-сессии.