Простой RESTful API сервис для реферальной системы, который позволяет пользователям регистрироваться, аутентифицироваться, создавать и использовать реферальные коды. Проект построен с использованием современных технологий и фокуса на чистоту, читаемость кода и устойчивость к неправильным действиям пользователя.
- Регистрация и аутентификация пользователя (JWT, OAuth 2.0)
- Управление реферальным кодом: аутентифицированный пользователь может создать или удалить свой реферальный код. В один момент времени активен только один код. При создании кода обязательно указывается срок его действия.
- Запрос реферального кода по email реферера
- Регистрация по реферальному коду: пользователи могут зарегистрироваться с использованием реферального кода, становясь рефералами.
- Получение информации о рефералах по
id
реферера
-
POST /api/user/new: Регистрация нового пользователя c возможностью отправить реферальный код.
-
POST /api/user/referral: Создание нового реферального кода (требует аутентификации)
-
DELETE /api/user/referral: Удаление текущего реферального кода пользователя (требует аутентификации)
-
GET /api/user/referral?user_id=id: Получение информации о рефералах по id реферера
-
GET /api/user/referral/email: Получение реферального кода по email реферера
-
POST /api/auth/login: Аутентификация пользователя и получение токена JWT
-
POST /api/auth/token: Обновление токена JWT по refresh JWT
-
POST /api/auth/logout: Удаление refresh JWT из куков.
git clone https://github.com/Miron-Anosov/ReferAPI.git
openssl genrsa -out jwt-private.pem 2048
openssl rsa -in src/certs/jwt-private.pem -outform PEM -pubout -out jwt-public.pem
- Создаем
.env
- Вписываем чувствительные данные в
.env
по шаблону.env.template
- В том числе сгенерированные ключи в соответсвующее поля.
cd ./.;
docker compose up -d