Skip to content
This repository has been archived by the owner on May 25, 2023. It is now read-only.

burnstopper/User

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Microservice "User"

Микросервис "Пользователь". Бэк создан на основе шаблона для бэкенда с FastAPI.
Реализованы регистрация, авторизация и следующие методы API для внутреннего использования:

  • POST http://{HOST}:{PORT}/api/user/new_respondent --- возвращает зашифрованный токен пользователя.
  • GET http://{HOST}:{PORT}/api/user/{user_token} --- принимает зашифрованный токен пользователя, возвращает его ID.
    • При истечении срока действия токена возвращается ошибка с кодом 401 и комментарием "Expired token".
    • При неверном формате токена возвращается ошибка c кодом 403 и комментарием "Invalid token".
  • GET http://{HOST}:{PORT}/api/user/check_researcher/{user_token} --- принимает зашифрованный токен пользователя, возвращает логическое значение в зависимости от того, является ли данный пользователь исследователем.
  • При истечении срока действия токена возвращается ошибка с кодом 401 и комментарием "Expired token".
  • При неверном формате токена возвращается ошибка c кодом 403 и комментарием "Invalid token".

Конфигурационный файл с переменными окружения должен находиться по пути "user/backend/.env" . В нём находятся следующие переменные:
PORT --- порт, на котором будет запускаться микросервис
HOST --- хост, на котором будет запускаться микросервис
JWT_SECRET --- 32-битный секрет для JWT
JWE_SECRET --- 32-битный секрет для JWT
JWT_ALGORITHM --- алгоритм кодирования JWT
JWE_ENCRYPTION_ALGORITHM --- алгоритм шифрования JWE
SQLALCHEMY_DATABASE_URI="sqlite+aiosqlite://app/storage/user_databases.db" --- путь к базе данных относительно "user/backend"
TOKEN_EXPIRE_TIME_IN_DAYS --- срок действия токена пользователя в днях
BEARER_TOKEN --- токен доступа, с которым другие сервисы должны посылать запросы
MAIL_USERNAME --- имя пользователя
MAIL_PASSWORD --- пароль для почтовой программы
MAIL_FROM --- электронный адрес
MAIL_PORT --- SMTP-порт
MAIL_SERVER --- SMTP-сервер исходящей почты

Последние переменные (начинающиеся с MAIL_) зависят от используемого SMTP-сервера.