Шаг 1. Аутентификация и управление токенами
Прежде чем отправлять запросы к API, необходимо аутентифицироваться и получить JWT‑токен. Токен используется для идентификации вашего сервис‑аккаунта при каждом запросе.
- Получение
access_token - Обновление токена с помощью
refresh_token
1. Пример получения access_token
Запрос:
curl -X POST https://api.creon.ae/v2/auth/token \
-H "Content-Type: application/json" \
-d '{"account_id":"YOUR_ACCOUNT_ID","public_key":"BASE64_PUBLIC_KEY"}'
Что происходит:
- API проверяет
account_idиpublic_key. - Возвращает
access_token,refresh_tokenиexpires_in.
Описание полей:
account_id: uuid (required) — account_id из файла credentials.jsonpublic_key: string (required) — public_key из файла credentials.json
Ответ:
-
Status 200:
{ "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "refresh_token": "8xLOxBatCN8fDrMHtkX1uDgeHxWxhoJDl...", "expires_in": 3600 } -
Status 400:
{ "error": "ERROR_INVALID_PUBLIC_KEY", "message": "Public key is invalid", "statusCode": 400 } -
Status 404:
{ "error": "ERROR_INVALID_CREDENTIALS", "message": "Credentials are invalid or account not found", "statusCode": 404 }
2. Обновление токена с помощью refresh_token
Этот эндпоинт позволяет обновить access_token с использованием действующего refresh_token. Обновлённый токен необходимо использовать для последующих API-запросов, чтобы сохранить доступ. Убедитесь, что refresh_token всё ещё действителен и не истёк.
Запрос:
curl -X POST https://api.creon.ae/v2/auth/token/refresh \
-H "Authorization: Bearer <ACCESS_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"refresh_token":"REFRESH_TOKEN"}'
Описание полей:
access_token: string (required) — Authorization: Bearerrefresh_token: string (required) — refresh_token для обновления access_token
Разбор ответа:
-
Status 200:
{ "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "refresh_token": "8xLOxBatCN8fDrMHtkX1uDgeHxWxhoJDl...", "expires_in": 3600 } -
Status 400:
{ "error": "ERROR_REFRESH_TOKEN_INVALID", "message": "Refresh token is invalid. Use a valid refresh token.", "statusCode": 400 } -
Status 401:
{ "error": "ERROR_REFRESH_TOKEN_EXPIRED", "message": "Refresh token has expired.", "statusCode": 401 }