🚀 Регистрация и аутентификация POST /register
Описание: Регистрация нового пользователя.
Тело запроса:
{ "login": "user", "password": "pass", "role": "USER" | "ADMIN" }
Ответы:
200 OK — пользователь успешно зарегистрирован.
400 — ошибка, например, попытка создать второго администратора.
500 — внутренняя ошибка сервера.
POST /login
Описание: Аутентификация пользователя.
Тело запроса:
{ "login": "user", "password": "pass" }
Ответы:
200 OK — успешная аутентификация, возвращен токен.
{
"token": "<JWT>"
}
401 — ошибка авторизации.
500 — внутренняя ошибка сервера.
🔐 OTP (одноразовые пароли) POST /otp/generate
Описание: Генерация OTP для выполнения операции.
Заголовки:
Authorization: <token> — JWT токен аутентифицированного пользователя.
Тело запроса:
{ "channel": "email" | "sms" | "telegram" | "file", "destination": "example@example.com" }
Ответы:
200 OK — OTP успешно сгенерирован.
403 — нет доступа (например, неправильный токен).
Пример запроса:
POST /otp/generate Authorization: {token}
{ "channel": "sms", "destination": "+79236976269" }
Для других каналов:
channel: "email" — destination: "your@email.com"
channel: "telegram" — destination: "-123456789" (chat_id)
channel: "sms" — destination "+79236976269"
channel: "file" — destination можно не указывать.
POST /otp/validate
Описание: Валидация одноразового пароля (OTP).
Заголовки:
Authorization: <token> — JWT токен аутентифицированного пользователя.
Тело запроса:
{ "code": "123456" }
Ответы:
200 OK — OTP верен.
400 — неверный код.
403 — нет доступа.
500 — внутренняя ошибка сервера.
🛠 Администрирование POST /admin/config
Описание: Обновление конфигурации OTP (время жизни и длина кода).
Заголовки:
Authorization: <admin-token> — токен администратора.
Тело запроса:
{ "ttl_seconds": 120, "length": 6 }
Ответы:
200 OK — конфигурация успешно обновлена.
403 — доступ запрещен.
500 — внутренняя ошибка сервера.
GET /admin/users
Описание: Получение списка всех пользователей (кроме администраторов).
Заголовки:
Authorization: <admin-token> — токен администратора.
Ответ:
{ "users": ["user1", "user2"] }
Ответы:
200 OK — список пользователей.
403 — доступ запрещен.
500 — внутренняя ошибка сервера.
DELETE /admin/user
Описание: Удаление пользователя.
Заголовки:
Authorization: <admin-token> — токен администратора.
Тело запроса:
{ "login": "user" }
Ответы:
200 OK — пользователь успешно удален.
400 — ошибка (например, пользователь не найден).
403 — доступ запрещен.
500 — внутренняя ошибка сервера.
🔑 Пример запроса на /otp/generate
POST /otp/generate Authorization: {token}
{ "method": "sms", "destination": "+79236976269" }
Также можно использовать другие методы:
method: "email" + destination: "your@email.com"
method: "telegram" + destination: "-123456789" (chat_id)
method: "file" — destination можно не указывать.