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

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

API-ключи пространства Router — как их передавать, их лимиты, срок действия и ротация.

Открыть .md

Каждый запрос к /api/v1, кроме GET /api/v1/models, требует API-ключ в заголовке Authorization:

Authorization: Bearer sk-nr-...

API-ключи

API-ключ принадлежит одному пространству Router. Участники с нужной ролью создают ключи на странице API-ключи пространства в кабинете. Ключ выглядит так: sk-nr-<prefix>-<secret>:

  • секрет показывается один раз, при создании ключа; роутер хранит только хеш и префикс;
  • запросы каждого ключа оплачивает плательщик его пространства, и они видны в логах пространства.

Настройки ключа

НастройкаЧто делает
БюджетСколько ключ может потратить, в PnP. Запрос, который превысил бы бюджет, получает 402.
Сброс бюджетаНикогда, ежедневно, еженедельно или ежемесячно; сброс происходит в 00:00 по Москве.
Запросов в минутуЛимит запросов для этого ключа ниже стандартного.
Срок действияДата, после которой ключ перестает работать (401). Срок можно продлить.
Отключить / ВключитьПриостанавливает ключ без отзыва. Отключенный ключ получает 401.
ОтозватьУдаляет ключ навсегда.

GET /api/v1/key возвращает текущие расходы, бюджет, период сброса и срок действия ключа, с которым сделан запрос. См. GET /key.

Храните ключи в секрете

  • Вызывайте API со своего сервера, а не из браузера или мобильного приложения: любой, кто может прочитать страницу, прочитает и ключ. API не отправляет заголовки CORS, поэтому браузеры на других сайтах все равно не смогут его вызвать.
  • Храните ключи в переменных окружения или в менеджере секретов, а не в коде и репозиториях.
  • Используйте отдельный ключ для каждого приложения или окружения: тогда для него можно задать свой бюджет и отозвать его отдельно.

Ротация ключа

  1. Создайте новый ключ в том же пространстве Router.
  2. Разверните его в своем приложении.
  3. Проверьте в логах, что запросы идут с новым ключом, затем отзовите старый.

Ошибки аутентификации

СтатусСообщениеЧто делать
401invalid API keyПроверьте заголовок и ключ.
401the API key is disabled / has expired / is revokedВключите или продлите ключ либо создайте новый.
402the API key spending limit is reachedУвеличьте бюджет или дождитесь сброса.
403the Router space has no payer Nodul spaceВыберите плательщика в настройках пространства.

Все коды ошибок — в разделе Ошибки.