Перейти к содержимому

Аутентификация

После login / register клиент сохраняет пару токенов и ходит в API с access-токеном.

ТокенНазначение
access_tokenКороткоживущий; заголовок Authorization: Bearer <access_token>
refresh_tokenОбновление access без повторного ввода пароля

Поток при 401 на защищённом маршруте (веб-клиент):

  1. POST /api/v1/auth/refresh с refresh-токеном.
  2. Успех → сохранить новый access (и refresh, если ротация).
  3. Неудача → разлогин, редирект на login.

Не кладите токены в URL, логи сервера приложения и публичные репозитории.

Метод и путьНазначение
POST /api/v1/auth/registerРегистрация (email, имя, пароль)
POST /api/v1/auth/loginВход
POST /api/v1/auth/refreshОбновление access
POST /api/v1/auth/forgot-passwordЗапрос письма/токена сброса
POST /api/v1/auth/reset-passwordУстановка нового пароля по токену
OAuthGoogle / Yandex / VK / Mail — если включены в конфигурации сервера

UI сброса: app.planovik.pro/forgot-password.
Регистрация: app.planovik.pro/register.

  1. Клиент инициирует OAuth у провайдера (redirect URI из настроек backend).
  2. Callback на стороне приложения / API обменивает code на сессию Planovik.
  3. Дальше — те же JWT access/refresh, что и при password-login.

Набор провайдеров зависит от env сервера; отсутствие кнопки в UI ≠ «эндпоинт обязан существовать».

Auth-группа защищена отдельным rate limit (brute-force login/register/reset). При 429 — backoff, не долбить цикл refresh+login.

  • Токены хранятся в согласованном session/storage-слое клиента (не в markdown docs).
  • Выход — очистка токенов + invalidate на сервере, если endpoint logout реализован.
  • Смена пароля / компрометация — сброс сессий по политике backend.

Для интеграций (не путать с JWT сессии пользователя и с BYOK ключами ИИ):

  • создаются в Настройки аккаунта → API;
  • секрет показывается один раз;
  • лимит числа ключей (в UI — до 10);
  • revoke отключает все вызовы с этим ключом.

Использование и права ключей описаны в документации внешнего API. Передавайте ключ в Authorization: Bearer plk_… и никогда не коммитьте его.