Вход, выдача пары JWT.
Base URL: https://<host>/ (пример: http://localhost:5000). Соглашения, обзор Public API, Swagger UI.
Аутентификация: None
Тело запроса:
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
username | string | да | |
password | string | да | |
mfa_code | string | нет | TOTP при включённом MFA |
Response 200 — data:
| Поле | Тип | Описание |
|---|---|---|
access_token | string | JWT access |
токен обновления | string | JWT refresh |
token_type | string | "Bearer" |
expires_in | int | TTL access token (сек) |
mfa_required | bool | true если нужен второй фактор |
Error codes: invalid_credentials, email_not_verified, account_locked, ip_locked, mfa_required, mfa_invalid, rate_limited, public_api_blocked
| Заголовок | Обяз. | Описание |
|---|---|---|
Content-Type | да | application/json |
{
"username": "demo",
"password": "DemoPass1"
}
{
"success": true,
"data": {
"access_token": "eyJhbG...",
"refresh_token": "eyJhbG...",
"token_type": "Bearer",
"expires_in": 3600,
"mfa_required": false
}
}
{
"success": false,
"error": {
"code": "invalid_credentials",
"message": "Invalid username or password"
}
}
curl -X POST http://localhost:5000/api/v1/auth/login \
-H "Content-Type: application/json" \
-d '{"username":"demo","password":"DemoPass1"}'
См. также: Коды ошибок Auth.