Skip to content

Latest commit

 

History

History
185 lines (139 loc) · 4.41 KB

File metadata and controls

185 lines (139 loc) · 4.41 KB

logo

Auth Service

Микросервис, отвечающий за авторизацию пользователей.

Содержимое

Сборка

Микросервис написан на 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

Эндпоинты

POST /login

Описание

Эндпоинт для авторизации.
Возвращает сессию.

Тело

{
  "username": "",
  "password": "",
}

POST /refresh

Описание

Обновляет JWT токен через Refresh token.

Тело

{
  "refresh_jwt": "REFRESH TOKEN"
}

POST /owner

Описание

Возвращает владельца токена.

Авторизация

Внутренний эндпоинт - это значит что эндпоинт
должен быть доступен только в рамках API Gateway.

Тело

{
  "token": "JWT"
}

POST /recovery

Описание

Инициализирует процесс восстановления пароля.

Тело

{
  "email": ""
}

GET /recoveryExist

Описание

Проверяет, есть ли в Редисе незаконченный процесс восстановления пароля.

Query

  • code (string, обязателен): Код восстановления

POST /recoveryConfirm

Описание

Восстанавливает пароль.

Тело

{
  "code": "",
  "password": "new password"
}

POST /register

Описание

Инициализирует процесс регистрации.

Тело

{
  "username": "",
  "password": "",
  "email": ""
}

GET /register/confirm

Описание

Заканчивает регистрацию, добавляя пользователя в БД.

Query

  • id: Код регистрации, полученный из письма

POST /2fa/add

Описание

Генерирует 2FA код и отправляет его ввиде JSON

Ответ

{
  "qr": "",
  "secret": ""
}

POST /2fa/link

Описание

Прикрепляет 2FA код к профилю.

Тело

{
  "code": "код после привязки секрета в 2fa менеджере",
  "secret": ""
}

POST /2fa/login

Описание

Если у пользователя включен 2FA, то после попытки авторизоваться через
/login ему выдаст сообщение о необходимости ввести 2FA код из приложения.
Так вот если кратко этот код нужно отправлять на этот эндпоинт, и он выдаст
вам сессию.

Query

  • username (string; обязательный) - Никнейм игрока

Тело

{
  "code": "код из приложения"
}