Реализовать сервис на языке программирования Golang.
Задача сервиса – регистрировать, авторизировать пользователей.
Сервис должен иметь два HTTP POST метода:
- Login
- Register
Базу данных использовать PostgreSQL.
Обязательные поля при регистрации:
- Логин
- Пароль
- Номер телефона
Детали реализации остаются на усмотрение исполнителя.
curl api.users.local/v1/users \
--request POST \
--header 'Host: api.users.local' \
--header 'Content-Type: application/json' \
--data-raw '{
"login": "user",
"phone": "0 (555) 385-55-00",
"email": "[email protected]",
"password": "P@sssw0rd"
}'
curl api.users.local/v1/auth \
--request POST \
--header 'Host: api.users.local' \
--header 'Content-Type: application/json' \
--data-raw '{
"login": "user",
"password": "P@sssw0rd"
}'
- Покрыть проект тестами
- Реализовать хэширование паролей при сохранении в БД
Создать DockerfileНаписать docker-compose.yml- Написать CI/CD
Написать начальные миграции для БД- Добавить метрики для мониторинга
- Добавить авторизацию в Middleware
Реализовать валидацию входных данных- Улучшить валидацию входных данных
- Реализовать генерацию токена при авторизации
- Реализовать авторизацию по токенам
- Реализовать возврат стандартных ошибок сервиса
- Внедрить использование gRPC
- Реализовать ролевую модель (ACL/RBAC)