Микросервис, отвечающий за авторизацию пользователей.
Микросервис написан на Rust, так что чтобы
собрать его вам необходимо лишь установить cargo на ваш ПК,
и прописать следующую команду
cargo build --releaseПосле успешной сборки вы сможете найти артефакт по этому пути ./target/release/auth_service.
Команды для деплоя уже есть в нашем Puff-файле.
Узнать подробнее что такое Puff-файл
# Собирает сервис и пушит его в регистр под тегом latest
puff deployRUST_LOG: string - Уровень логгирования
DATABASE_URL: string - URL для подключения к PostgreSQL.
REDIS_URL: string - URL для подключения к Redis
MAIL_URL: string - Домен до сервиса mail (ex. localhost:3000)
USER_URL: string - Домен до сервиса user (ex. localhost:3000)
JWT_SECRET: string - Секрет для JWT
Эндпоинт для авторизации.
Возвращает сессию.
{
"username": "",
"password": "",
}Обновляет JWT токен через Refresh token.
{
"refresh_jwt": "REFRESH TOKEN"
}Возвращает владельца токена.
Внутренний эндпоинт - это значит что эндпоинт
должен быть доступен только в рамках API Gateway.
{
"token": "JWT"
}Инициализирует процесс восстановления пароля.
{
"email": ""
}Проверяет, есть ли в Редисе незаконченный процесс восстановления пароля.
- code (string, обязателен): Код восстановления
Восстанавливает пароль.
{
"code": "",
"password": "new password"
}Инициализирует процесс регистрации.
{
"username": "",
"password": "",
"email": ""
}Заканчивает регистрацию, добавляя пользователя в БД.
- id: Код регистрации, полученный из письма
Генерирует 2FA код и отправляет его ввиде JSON
{
"qr": "",
"secret": ""
}Прикрепляет 2FA код к профилю.
{
"code": "код после привязки секрета в 2fa менеджере",
"secret": ""
}Если у пользователя включен 2FA, то после попытки авторизоваться через
/login ему выдаст сообщение о необходимости ввести 2FA код из приложения.
Так вот если кратко этот код нужно отправлять на этот эндпоинт, и он выдаст
вам сессию.
- username (string; обязательный) - Никнейм игрока
{
"code": "код из приложения"
}