# 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).