- Базовый URL для API пользователей: /users
- Базовый URL для общих эндпоинтов: /api
- Формат данных: JSON
Регистрирует нового пользователя в системе.
- URL: /register
- Метод: POST
- Тело запроса: Объект User в JSON
- Успешный ответ:
- Код: 201 CREATED
- Содержание: { "message": "Пользователь зарегистрирован. Проверьте почту для подтверждения." }
- Ошибка:
- Код: 409 CONFLICT
- Содержание: { "message": "Пользователь с таким email уже существует" }
Подтверждает email пользователя.
- URL: /confirm-email
- Метод: POST
- Параметры запроса:
- email=[string]
- code=[string]
- Успешный ответ:
- Код: 200 OK
- Содержание: { "message": "Email подтвержден. Теперь вы можете войти в систему." }
- Ошибки:
- Код: 400 BAD REQUEST
- Содержание: { "message": "Неверный код подтверждения" }
- Код: 404 NOT FOUND
- Содержание: { "message": "Пользователь не найден" }
Генерирует и отправляет код для входа.
- URL: /request-code
- Метод: POST
- Параметры запроса:
- email=[string]
- Успешный ответ:
- Код: 200 OK
- Содержание: { "message": "Код отправлен на вашу почту" }
- Ошибка:
- Код: 404 NOT FOUND
- Содержание: { "message": "Пользователь не найден" }
Выполняет вход пользователя в систему.
- URL: /login
- Метод: POST
- Параметры запроса:
- email=[string]
- code=[string]
- deviceId=[string]
- Успешный ответ:
- Код: 200 OK
- Содержание: { "token": "ваш_токен", "deviceHash": "хеш_устройства" }
- Ошибки:
- Код: 401 UNAUTHORIZED
- Содержание: { "message": "Код недействителен или просрочен" }
- Код: 403 FORBIDDEN
- Содержание: { "message": "Аккаунт не активирован. Подтвердите email." }
- Код: 404 NOT FOUND
- Содержание: { "message": "Пользователь не найден" }
Проверяет и обновляет хеш устройства пользователя.
- URL: /verify-device
- Метод: POST
- Параметры запроса:
- userId=[long]
- deviceId=[string]
- hash=[string]
- Успешный ответ:
- Код: 200 OK
- Содержание: { "newDeviceHash": "новый_хеш_устройства" }
- Ошибка:
- Код: 401 UNAUTHORIZED
- Содержание: { "message": "Неверные данные устройства" }
Возвращает информацию о текущем авторизованном пользователе.
- URL: /api/
- Метод: GET
- Требуемые роли: USER, SERVICE
- Успешный ответ:
- Код: 200 OK
- Содержание: Объект User в JSON
- Ошибки:
- Код: 403 FORBIDDEN
- Содержание: { "message": "Аккаунт не активирован. Пожалуйста, подтвердите ваш email." }
- Код: 404 NOT FOUND
- Содержание: { "message": "Пользователь не найден" }
Проверяет доступ пользователя с ролью админа.
- URL: /api/admin
- Метод: GET
- Требуемая роль: ADMIN
- Успешный ответ:
- Код: 200 OK
- Содержание: { "message": "Доступ к админ-панели предоставлен для [email]" }
Этот эндпоинт всегда запрещен для всех пользователей.
- URL: /api/void
- Метод: GET
- Ответ:
- Код: 403 FORBIDDEN
- Содержание: { "message": "Доступ запрещен" }
Доступен для всех пользователей, включая неавторизованных.
- URL: /api/public
- Метод: GET
- Успешный ответ:
- Код: 200 OK
- Содержание: { "message": "Это публичный эндпоинт" }
Возвращает информацию о текущем статусе пользователя.
- URL: /api/status
- Метод: GET
- Успешный ответ для авторизованного пользователя:
- Код: 200 OK
- Содержание: { "message": "Вы вошли как [email] с ролью: [роль]" }
- Ответ для неавторизованного пользователя:
- Код: 200 OK
- Содержание: { "message": "Вы не авторизованы" }
- email: String
- isActive: Boolean
- confirmationCode: String (временный)
- userId: Long
- code: String
- expirationTime: LocalDateTime
- userId: Long
- deviceId: String
- hash: String
- Все запросы и ответы используют формат JSON.
- Для операций входа и подтверждения используются одноразовые коды вместо паролей.
- Система использует механизм подтверждения устройств для дополнительной безопасности.
- Убедитесь, что вы храните deviceId и deviceHash на стороне клиента для последующих запросов.