Skip to content

Сервис для авторизации пользователей и управления сессиями

Notifications You must be signed in to change notification settings

riverfallmc/auth-service

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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": "код из приложения"
}

About

Сервис для авторизации пользователей и управления сессиями

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published