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

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

Все эндпоинты API требуют аутентификации. Наговори поддерживает два метода:

API-ключи

API-ключи — рекомендуемый способ для серверных интеграций. Создайте ключ в Профиле.

Формат: nag_ + 32 шестнадцатеричных символа (например, nag_a1b2c3d4e5f67890abcdef1234567890).

Использование: передайте ключ как Bearer-токен в заголовке Authorization:

Authorization: Bearer nag_ВАШ_КЛЮЧ

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

  • Ключи хешируются перед сохранением — Наговори никогда не хранит сырой ключ
  • У каждого ключа есть видимый префикс (nag_xxxx) для идентификации
  • Отозванные ключи немедленно аннулируются
  • Ограничение по операциям (scopes) — в разработке

JWT-токены

JWT-токены используются для аутентификации через веб-интерфейс и мобильные приложения посредством OIDC-потока.

Токен передаётся аналогично:

Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...

Когда использовать JWT

  • Для фронтенд-приложений с OAuth2/OIDC
  • Когда требуется доступ от имени конкретного пользователя

Когда использовать API-ключ

  • Серверные скрипты и автоматизация
  • CI/CD пайплайны
  • Боты и микросервисы

Примеры

cURL с API-ключом

curl https://api.nagovori.ru/v1/me \
  -H "Authorization: Bearer nag_a1b2c3d4e5f67890abcdef1234567890"

Python

import requests

API_KEY = "nag_ваш_ключ"
headers = {"Authorization": f"Bearer {API_KEY}"}

response = requests.get("https://api.nagovori.ru/v1/me", headers=headers)
print(response.json())

TypeScript

const API_KEY = process.env.NAGOVORI_API_KEY!;

const res = await fetch("https://api.nagovori.ru/v1/me", {
  headers: { Authorization: `Bearer ${API_KEY}` },
});
const data = await res.json();