# Authentication

Способы аутентификации в IskraGen API

Для интеграций с IskraGen API используется **API-ключ** в заголовке `Authorization`. Это единственный поддерживаемый способ программного доступа.

## API ключи

### Создание ключа

В личном кабинете: [/api-keys](/api-keys) → «Создать ключ». Каждый ключ имеет:

- `prefix` — публичная часть (видна в списке, например `isk_live_a1b2c3d4`).
- `last4` — последние 4 символа для удобства идентификации.
- `secret` — секретная часть, **показывается один раз** при создании.

Если ключ потерян — отзовите его и создайте новый. Восстановить секрет невозможно.

### Использование

Все запросы к API передают ключ в заголовке `Authorization`:

```bash
curl https://api.iskragen.ru/v1/generations \
  -H "Authorization: Bearer isk_live_a1b2c3d4_<secret>"
```

### Безопасность

- **Не коммитьте ключи** в git. Используйте переменные окружения (`process.env.ISKRAGEN_API_KEY`).
- **Не передавайте ключи на фронтенд**. Делайте запросы из вашего бэкенда.
- **Ротация**: создайте новый ключ, переключите окружение, удалите старый.
- **Отзыв**: `DELETE /v1/api-keys/:id` мгновенно инвалидирует ключ.

## Поддерживаемые OAuth-провайдеры (только для входа в ЛК)

OAuth используется **только** для входа в веб-интерфейс iskragen.ru. Для программных интеграций нужен API-ключ.

- Yandex (`/auth/yandex`)
- Magic link на email (`/auth/magic-link/request`)

---

## Приложение: Session cookies

После входа в ЛК через Yandex или magic link браузер получает HttpOnly Secure cookie со ссылкой на сессию в Redis (TTL 30 дней с продлением на каждом запросе). Эта cookie позволяет вам открывать `/reference` или дёргать API из DevTools прямо из браузера на iskragen.ru без передачи `Authorization`.

Для серверных интеграций, скриптов и любых клиентов вне iskragen.ru session cookies **не работают** — используйте API-ключ.
