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

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

Узнайте, как выполнять аутентификацию в API BotLaunch с помощью JWT-токенов. Защитите свои запросы и управляйте доступом к ресурсам.

JWT-токены

Безопасная аутентификация без сохранения состояния с помощью JSON Web Tokens.

Срок действия токена

Токены доступа действуют 1 час, токены обновления — 7 дней.

Автообновление

Используйте токены обновления для бесперебойного получения новых токенов доступа.

Процесс аутентификации

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

1

Вход

Получите токены с помощью учётных данных

2

Сохранение токенов

Безопасно сохраните оба токена

3

Выполнение запросов

Включите токен в заголовки

4

Обновление

Получите новый токен по истечении срока

Эндпоинты аутентификации

POST/api/auth/login

Аутентификация пользователя и получение токенов доступа и обновления.

Request Body

FieldTypeRequiredDescription
emailstringUser's email address
passwordstringUser's password

Example Request

curl -X POST "https://api.botlaunch.io/api/auth/login" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "user@example.com",
    "password": "your-secure-password"
  }'
bash

Example Response

{
  "data": {
    "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
    "refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
    "expiresIn": 3600,
    "user": {
      "id": "usr_abc123",
      "email": "user@example.com",
      "role": "CLIENT_OWNER"
    }
  },
  "message": "Login successful"
}
json
POST/api/auth/register

Создание новой учётной записи пользователя и организации.

Request Body

FieldTypeRequiredDescription
emailstringValid email address
passwordstringMin 8 chars, 1 uppercase, 1 number
namestringUser's full name
organizationNamestringOptionalOrganization name

Example Request

curl -X POST "https://api.botlaunch.io/api/auth/register" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "newuser@example.com",
    "password": "SecureP@ssw0rd!",
    "name": "John Doe",
    "organizationName": "My Company"
  }'
bash
POST/api/auth/refresh

Обмен токена обновления на новый токен доступа.

Example Request

curl -X POST "https://api.botlaunch.io/api/auth/refresh" \
  -H "Content-Type: application/json" \
  -d '{
    "refreshToken": "your-refresh-token"
  }'
bash

Ротация токенов

Каждый запрос на обновление возвращает новый токен обновления. Сохраняйте и используйте последний токен обновления для последующих запросов.

POST/api/auth/logout

Завершение текущей сессии и отзыв токенов.

Example Request

curl -X POST "https://api.botlaunch.io/api/auth/logout" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json"
bash

Использование токенов доступа

Включайте токен доступа в заголовок Authorization для всех API-запросов.

// Include the access token in all API requests
const response = await fetch("https://api.botlaunch.io/api/bots", {
  headers: {
    "Authorization": "Bearer eyJhbGciOiJIUzI1NiIs...",
    "x-organization-id": "org_xyz789",
    "Content-Type": "application/json"
  }
});
javascript

Обязательные заголовки

AuthorizationBearer token
x-organization-idOrganization ID
Content-Typeapplication/json

Лучшие практики безопасности

  • Храните токены безопасно (никогда в localStorage для веба)
  • Используйте HTTPS для всех API-запросов
  • Реализуйте обновление токена до истечения срока
  • Отзывайте токены при выходе или событиях безопасности

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

Распространённые ошибки аутентификации и способы их обработки.

StatusErrorDescriptionSolution
401UnauthorizedMissing or invalid tokenCheck Authorization header
401Token ExpiredAccess token has expiredUse refresh token to get new access token
403ForbiddenInsufficient permissionsCheck user role and organization access
429Too Many RequestsLogin rate limit exceededWait and retry after cooldown
400Invalid CredentialsWrong email or passwordVerify credentials and try again