Микросервис является компонентом приложения GreenChat, отвечающим за аутентификацию и авторизацию пользователей. Он предоставляет функциональности для входа в систему, генерации и проверки токенов с использованием JWT (JSON Web Tokens). Используемые технологии
- Java
- Maven
- Spring Boot
- Spring Security
- Spring Data JPA
- JWT (JSON Web Tokens)
- Lombok
- Mockito
- JUnit
- PostgreSQL
- OpenApi (Swagger)
- Docker
- Вход в систему: Пользователи могут войти в систему, используя свои имя пользователя и пароль.
- Генерация токенов: При успешном входе в систему микросервис генерирует токен доступа и токен обновления.
- Проверка токенов: Микросервис может проверять токен доступа и токен обновления.
- Управление доступом: Микросервис обеспечивает контроль доступа на основе ролей к защищенным ресурсам.
git clone https://github.com/MrGreenNV/greenchat-auth-service.git
cd greenchat-auth-service
docker compose up --build -d
После запуска, микросервис будет доступен по адресу: http://localhost:9090.
Документация OpenAPI (Swagger) будет доступна после запуска проекта по ссылке: http://localhost:9090/swagger-ui/index.html#/
Микросервис GreenChat Auth предоставляет следующие API-endpoints:
POST /greenchat/auth/login
API-endpoint для выполнения операции входа в систему. Принимает JSON-объект JwtRequest с логином и хэшированным паролем пользователя.
Пример запроса:
{
"username": "user@example.com",
"password": "hashed_password"
}
Ответ:
{
"accessToken": "access_token",
"refreshToken": "refresh_token"
}
POST /greenchat/auth/token
API-endpoint для получения нового Access токена на основе переданного Refresh токена. Принимает JSON-объект JwtRequestRefresh с Refresh токеном.
Пример запроса:
{
"refreshToken": "refresh_token"
}
Ответ:
{
"accessToken": "new_access_token"
}
POST /greenchat/auth/refresh
API-endpoint для обновления Access и Refresh токенов на основе переданного Refresh токена. Принимает JSON-объект JwtRequestRefresh с Refresh токеном.
Пример запроса:
{
"refreshToken": "refresh_token"
}
Ответ:
{
"accessToken": "new_access_token",
"refreshToken": "new_refresh_token"
}
Микросервис GreenChat Auth включает модульные тесты для проверки его функциональности. Вы можете запустить тесты с помощью сборщика Maven:
mvn test
Если вы хотите внести свой вклад в развитие GreenChat Auth или обнаружили проблему, пожалуйста, создайте issue в репозитории проекта или отправьте pull request с вашими предложениями.
Подробную документацию проекта GreenChat Auth вы можете найти, перейдя по ссылке: https://mrgreennv.github.io/greenchat-auth-service