identity server

Задача:

Написать сервис аутентификации.

Четыре REST маршрута:

• Первый маршрут выдает пару Access, Refresh токенов для пользователя с идентификатором (GUID) указанным в параметре запроса

• Второй маршрут выполняет Refresh операцию на пару Access, Refresh токенов

• Третий маршрут удаляет конкретный Refresh токен из базы

• Четвертый маршрут удаляет все Refresh токены из базы для конкретного пользователя

Технологии:

Язык программирования Go.

База данных MongoDB, топология Replica Set, использование транзакций обязательно.

Access токен тип JWT, алгоритм SHA512.

Refresh токен тип произвольный, формат передачи base64, хранится в базе исключительно в виде bcrypt хеша, должен быть защищен от изменения на стороне клиента и попыток повторного использования.

Access, Refresh токены обоюдно связаны, Refresh операцию для Access токена можно выполнить только тем Refresh токеном который был выдан вместе с ним.

Результат:

Результат выполнения задания нужно предоставить в виде исходного кода на Github, а также работающего приложения на Heroku