GonetsDocs/Documentation/Tech-docs/api/endpoints/auth.md
2025-10-14 16:19:35 +05:00

90 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# api.v1.auth
### *async* api.v1.auth.check_users_file(translations: Translations = Depends(translations_dependency))
Проверяет, существует ли файл users.json и содержит ли он пользователей.
Возвращает информацию о состоянии файла и наличии пользователей.
* **Returns:**
Словарь с ключами:
: - ”exists” (bool): Существует ли файл.
- ”has_users” (bool): Содержит ли файл пользователей.
- ”message” (str): Сообщение с описанием результата.
* **Return type:**
dict
* **Raises:**
**HTTPException** – Если произошла ошибка при проверке файла (status_code=500).
### *async* api.v1.auth.get_current_user(request: Request, translations: Translations = Depends(translations_dependency))
Возвращает данные текущего пользователя и токен.
Проверяет активную сессию по client_id и возвращает информацию о пользователе
и токен для дальнейшего использования.
* **Parameters:**
* **request** (*Request*) – Объект запроса для получения client_id (IP-адрес клиента).
* **translations** – Объект переводов для текущего языка.
* **Returns:**
Словарь с ключами “user” (UserResponse), “access_token” (str) и
: ”token_type” (str, всегда “bearer”).
* **Return type:**
dict
* **Raises:**
**HTTPException** – Если сессия не найдена или истекла (status_code=401) или
произошла внутренняя ошибка (status_code=500).
### *async* api.v1.auth.login(user: UserLogin, request: Request, translations: Translations = Depends(translations_dependency))
Авторизует пользователя и создаёт сессию.
Проверяет учетные данные пользователя и возвращает токен и session_id для
последующей авторизации.
* **Parameters:**
* **user** (*UserLogin*) – Объект с данными для входа (username, password).
* **request** (*Request*) – Объект запроса для получения client_id (IP-адрес клиента).
* **translations** – Объект переводов для текущего языка.
* **Returns:**
Объект с access_token и session_id для авторизации.
* **Return type:**
Token
* **Raises:**
**HTTPException** – Если учетные данные неверны (status_code=401) или произошла
внутренняя ошибка (status_code=500).
### *async* api.v1.auth.logout(request: Request, translations: Translations = Depends(translations_dependency))
Выход из системы, удаление сессии.
Удаляет активную сессию пользователя по client_id.
* **Parameters:**
* **request** (*Request*) – Объект запроса для получения client_id (IP-адрес клиента).
* **translations** – Объект переводов для текущего языка.
* **Returns:**
Пустой словарь или сообщение об успешном выходе.
* **Return type:**
dict
* **Raises:**
**HTTPException** – Если сессия не найдена (status_code=401) или произошла
внутренняя ошибка (status_code=500).
### *async* api.v1.auth.register(user: UserCreate, translations: Translations = Depends(translations_dependency))
Регистрирует нового пользователя.
Создаёт нового пользователя на основе предоставленных данных и возвращает
информацию о зарегистрированном пользователе.
* **Parameters:**
* **user** (*UserCreate*) – Объект с данными нового пользователя (username, password, is_admin).
* **translations** – Объект переводов для текущего языка.
* **Returns:**
Объект с данными зарегистрированного пользователя (id, username, is_admin).
* **Return type:**
UserResponse
* **Raises:**
**HTTPException** – Если пользователь уже существует (status_code=400) или произошла
внутренняя ошибка (status_code=500).