Categorygithub.com/DarRo9/Test-task-BackDev
module
0.0.0-20240902122859-f82f87feb047
Repository: https://github.com/darro9/test-task-backdev.git
Documentation: pkg.go.dev

# README

Test-task-BackDev

Как запустить сервис:

  1. Начните с запуска Docker Desktop.
  2. Введите в командной строке: docker compose up -d.

Как протестировать:

  1. Откройте Postman.
  2. Выполните: GET-запрос на localhost:8080/auth с заголовком Name (выбранный для аутентификации).
  3. Выполните: POST-запрос на localhost:8080/refresh с заголовками Name (тем же, который использовался для получения токена) и Token (полученным ранее токеном).

Условия тестового задания:

Используемые технологии:

  • Go
  • JWT
  • PostgreSQL

Задание:

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

Два REST маршрута:

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

Требования:

Access токен тип JWT, алгоритм SHA512, хранить в базе строго запрещено.

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

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

Payload токенов должен содержать сведения об ip адресе клиента, которому он был выдан. В случае, если ip адрес изменился, при рефреш операции нужно послать email warning на почту юзера (для упрощения можно использовать моковые данные).

Результат:

Результат выполнения задания нужно предоставить в виде исходного кода на Github. Будет плюсом, если получится использовать Docker и покрыть код тестами.

# Packages

No description provided by the author