Микросервис, отвечающий за авторизацию пользователей.
Микросервис написан на Rust, так что чтобы
собрать его вам необходимо лишь установить cargo
на ваш ПК,
и прописать следующую команду
cargo build --release
После успешной сборки вы сможете найти артефакт по этому пути ./target/release/auth_service
.
Команды для деплоя уже есть в нашем Puff-файле.
Узнать подробнее что такое Puff-файл
# Собирает сервис и пушит его в регистр под тегом latest
puff deploy
RUST_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": "код из приложения"
}