Аутентификация
n8n API использует API ключи для аутентификации запросов.
Получение API ключа
Через веб-интерфейс
- Войдите в n8n: https://n8n.chapiro.space
- Перейдите в Settings → API
- Нажмите "Create API Key"
- Введите название ключа (например, "Production API")
- Скопируйте ключ (показывается только один раз!)
⚠️ Важно: Сохраните ключ в безопасном месте. После закрытия окна его нельзя будет посмотреть снова.
Использование API ключа
HTTP Header
Передавайте API ключ в заголовке X-N8N-API-KEY:
bash
curl -X GET https://n8n.chapiro.space/api/v1/workflows \
-H "X-N8N-API-KEY: your_api_key_here"В коде
JavaScript
javascript
const headers = {
'X-N8N-API-KEY': 'your_api_key_here',
'Content-Type': 'application/json'
};
fetch('https://n8n.chapiro.space/api/v1/workflows', {
headers: headers
})
.then(response => response.json())
.then(data => console.log(data));Python
python
import requests
headers = {
'X-N8N-API-KEY': 'your_api_key_here',
'Content-Type': 'application/json'
}
response = requests.get(
'https://n8n.chapiro.space/api/v1/workflows',
headers=headers
)
print(response.json())PHP
php
$ch = curl_init('https://n8n.chapiro.space/api/v1/workflows');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'X-N8N-API-KEY: your_api_key_here',
'Content-Type: application/json'
]);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);Безопасность
Хранение ключей
✅ Правильно:
- Environment variables
- Secrets management (Vault, AWS Secrets Manager)
- Зашифрованные файлы конфигурации
- .env файлы (в .gitignore)
❌ Неправильно:
- Хардкод в коде
- Коммит в git
- Публичные репозитории
- Логи и консоль
Ротация ключей
Рекомендуется регулярно менять API ключи:
- Создайте новый ключ
- Обновите приложения на использование нового ключа
- Проверьте работоспособность
- Удалите старый ключ
Права доступа
API ключ имеет те же права, что и пользователь, который его создал:
- Полный доступ к воркфлоу
- Управление credentials
- Просмотр executions
Управление ключами
Список ключей
Просмотр всех созданных API ключей:
- Settings → API
- Список всех ключей с названиями и датами создания
Удаление ключа
⚠️ Удаление ключа немедленно прекращает доступ для всех приложений, использующих этот ключ.
- Settings → API
- Найдите ключ в списке
- Нажмите "Delete"
- Подтвердите удаление
Ошибки аутентификации
401 Unauthorized
Причины:
- Неверный API ключ
- Ключ был удален
- Неправильный формат заголовка
Ответ:
json
{
"error": {
"code": "UNAUTHORIZED",
"message": "Invalid API key"
}
}Решение:
- Проверьте правильность ключа
- Убедитесь, что ключ активен
- Проверьте формат заголовка
403 Forbidden
Причины:
- Недостаточно прав для операции
- Доступ к ресурсу запрещен
Ответ:
json
{
"error": {
"code": "FORBIDDEN",
"message": "Access denied to this resource"
}
}Альтернативные методы
Basic Auth (устаревший)
⚠️ Не рекомендуется для production.
bash
curl -X GET https://n8n.chapiro.space/api/v1/workflows \
-u "username:password"OAuth2 (будущее)
В разработке для будущих версий n8n.
Лучшие практики
- Один ключ на приложение - упрощает ротацию и отзыв
- Описательные названия - "Production API", "Dev Testing", "CI/CD"
- Мониторинг использования - отслеживайте подозрительную активность
- Ротация по расписанию - меняйте ключи раз в 3-6 месяцев
- Минимальные права - используйте разные аккаунты для разных целей
Environment Variables
.env файл
bash
# .env
N8N_API_KEY=your_api_key_here
N8N_BASE_URL=https://n8n.chapiro.space/api/v1Использование
javascript
require('dotenv').config();
const apiKey = process.env.N8N_API_KEY;
const baseUrl = process.env.N8N_BASE_URL;