Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lalathealter/medods
backend assignment for MEDODS (a small JWT authentication service)
https://github.com/lalathealter/medods
authentication golang jwt jwt-authentication mongodb rest
Last synced: about 1 month ago
JSON representation
backend assignment for MEDODS (a small JWT authentication service)
- Host: GitHub
- URL: https://github.com/lalathealter/medods
- Owner: lalathealter
- License: unlicense
- Created: 2024-02-22T08:59:26.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2024-02-23T17:01:12.000Z (10 months ago)
- Last Synced: 2024-06-20T19:32:59.322Z (7 months ago)
- Topics: authentication, golang, jwt, jwt-authentication, mongodb, rest
- Language: Go
- Homepage:
- Size: 19.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Test Task Back Dev (MEDODS)
Перед компиляцией и запуском (`go build` / `go run .`) необходимо поместить в переменные среды (или глобально для всей ОС, или .env-файлом в корневой папке репозитория) следующие обязательные значения:
- *host* — адрес для запуска сервиса
- *port* — номер порта для запуска сервиса
- *mongo_url* — строка для подключения к запущенному кластеру mongodb (в формате `mongodb://[username:password@]hostname[:port][/[database][?options]]`)
- *MEDODS_JWT_SECRET* — секрет для подписи JWT## Тестовое задание на позицию Junior Backend Developer (Оригинальный текст задания)
**Используемые технологии:**
- Go
- JWT
- MongoDB**Задание:**
Написать часть сервиса аутентификации.
Два REST маршрута:
- Первый маршрут выдает пару Access, Refresh токенов для пользователя сидентификатором (GUID) указанным в параметре запроса
- Второй маршрут выполняет Refresh операцию на пару Access, Refreshтокенов**Требования:**
Access токен тип JWT, алгоритм SHA512, хранить в базе строго запрещено.
Refresh токен тип произвольный, формат передачи base64, хранится в базеисключительно в виде bcrypt хеша, должен быть защищен от изменения настороне клиента и попыток повторного использования.
Access, Refresh токены обоюдно связаны, Refresh операцию для Access токена можно выполнить только тем Refresh токеном который был выдан вместе с ним.
**Результат:**
Результат выполнения задания нужно предоставить в виде исходного кода на Github.
P.S. Друзья! Задания, выполненные полностью или частично с использованием chatGPT видно сразу. Если вы не готовы самостоятельно решать это тестовое задание, то пожалуйста, давайте будем ценить время друг друга и даже не будем пытаться :)