Микросервис для аутентификации, авторизации и управления токенами.
AuthService предоставляет API для:
- Генерации и валидации JWT токенов
- Регистрации пользователей
- Верификации через SMS
- Интеграции с Kafka для событий аутентификации
POST /api/v1/auth/generate-token
- Генерация JWT токена (Тестовый ендпойнт для разработчиков)POST /api/v1/auth/validate-token
- Валидация JWT токена
POST /api/v1/auth/register
- Регистрация нового пользователяPOST /api/v1/auth/send-sms-code
- Отправка SMS с кодом подтвержденияPOST /api/v1/auth/verify-sms-code
- Проверка SMS кода и выдача токена
GET /swagger/*
- Swagger документация API
Конфигурация сервиса задается в файле configs/appsettings.json
, который работает как для локальной разработки, так и для Docker-контейнера.
Пример конфигурации:
{
"port": "8081",
"secret_key": "some_cool_key",
"is_development": true,
"database": {
"host": "localhost:5432",
"db_name": "auth_service_db",
"user": "postgres",
"password": "postgres"
},
"kafka": {
"url": "localhost:9092"
}
}
Для работы AuthService требуются:
- PostgreSQL - основное хранилище данных
- Kafka + Zookeeper - для общения с SmsService
- SmsService - сервис для отправки SMS (взаимодействие через Kafka)
- Убедитесь, что все внешние сервисы запущены
- Настройте конфигурацию под вас в файле
configs/appsettings.json
- Запустите сервис (зависимости должны подтянуться при билде):
go run main.go
Используйте docker-compose
для запуска всего стека:
docker-compose up -d --build
После запуска документация API будет доступна по адресу http://localhost:<PORT>/swagger/
API использует JWT для аутентификации. Токен должен передаваться в заголовке Authorization
в формате:
Authorization: Bearer <token>
Для установки echo-swagger
go install github.com/swaggo/swag/cmd/swag@latest
go get -u github.com/swaggo/echo-swagger
swag init -output docs --parseInternal --parseDependency
Для перегенерации swagger docs (из корня проекта):
swag init -output docs --parseInternal --parseDependency