Skip to content

SiVittorio/SimbirHealth

Repository files navigation

SimbirHealth

Данный репозиторий является решением задания олимпиады Volga-IT 2024 по направлению Web-API

Детали задания можно посмотреть в этом документе (https://volga-it.org/)

Установка

Для просмотра решения необходимо клонировать репозиторий, и, находясь в директории проекта, запустить следующую команду:

docker-compose up -d

Для запуска необходим установленный Docker

Основное задание

После запуска контейнеров, микросервисы будут доступны по следующим адресам:

Account: http://localhost:8080/swagger/index.html

Hospital: http://localhost:8081/swagger/index.html

Timetable: http://localhost:8082/swagger/index.html

History: http://localhost:8083/swagger/index.html

В базе данных уже имеются предустановленные аккаунты:

username password Role
admin admin Admin
manager manager Manager
doctor doctor Doctor
user user User

Отличия от изначального ТЗ:

  1. При вызове метода Authentication/SignOut Access Token не блокируется. Предполагается, что из-за короткой жизни токена шанс его перехвата и использования злоумышленником мал и функционал дополнительного хранения заблокированных access token'ов не предусмотрен, но может быть добавлен по согласованию с условным заказчиком.

  2. Использование метода Authentication/Validate для проверки пользователя и его роли.

    На рис. 2 в задании был изображен вызов метода Validate для проверки пользователя. Данный функционал не используется в большей части проекта, вместо него задействован атрибут ASP.NET [Authorize]. Применение этого метода задействовано через сервис AuthValidationService

  3. Обнуление refresh token после вызова метода Authentication/Refresh.

    Данный пункт взят из беседы олимпиады в Телеграм.

    -"7) При выполнении POST /api/Authentication/Refresh должен ли обнуляться refresh токен, который мы передаем в теле запроса?"

    -"7) да"

    Этот пункт связан с пунктом 1. Подразумевается, что при входе, пользователь может пользоваться сервисами, не вводя больше свои данные определенное время, это время задано временем жизни Refresh Token'а. Но в течении этого времени многократно может вызываться метод Refresh, для обновления просроченных Access Token'ов

  4. Использование Guid-идентификаторов вместо int auto increment

  5. Добавлен дополнительный метод в AccountController -> получить информацию об одном аккаунте. Это необходимо для проверки pacientId в микросервисе History

About

Volga-IT 2024 competition

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published