Skip to content

Repository files navigation

build release publish-k3s version Codecov License: MIT PRs Welcome

Planara.Auth

Сервис аутентификации и авторизации.

Отвечает за регистрацию пользователей, вход, обновление access токенов, управление refresh токенами, выход из аккаунта и удаление аккаунта пользователя.

Реализован как ASP.NET Core + GraphQL сервис с JWT access токенами, refresh токенами с ротацией и outbox-публикацией событий в Kafka.

Возможности

  • Регистрация пользователей
  • Вход по email / паролю
  • JWT access tokens
  • Refresh tokens с ротацией
  • Logout с отзывом refresh токена
  • Удаление аккаунта текущего пользователя
  • Публикация события создания пользователя в Kafka
  • Публикация события удаления пользователя в Kafka
  • Outbox pattern для надежной доставки событий
  • JWT авторизация ([Authorize])
  • Валидация входных данных (FluentValidation)
  • GraphQL API (HotChocolate)

GraphQL API

Queries

  • me: UUID Возвращает ID текущего пользователя (требует авторизации)

Mutations

  • register(request: RegisterRequestInput): AuthResponse Регистрирует пользователя и выдает пару access / refresh токенов

  • login(login: LoginRequestInput): AuthResponse Выполняет вход по email и паролю

  • refresh(request: RefreshRequestInput): AuthResponse Обновляет access токен по refresh токену и выполняет ротацию refresh токена

  • logout(request: LogoutRequestInput): LogoutResponse Отзывает refresh токен пользователя

  • deleteAccount: DeleteAccountResponse Удаляет аккаунт текущего пользователя (требует авторизации)

Запуск

Перед запуском сервиса необходимо поднять инфраструктуру через Docker Compose.

docker compose up -d

После запуска инфраструктуры можно запустить сервис:

dotnet run --project src/Planara.Auth.csproj

GraphQL endpoint:

/graphql

Тестирование

Для запуска тестов требуется Docker, так как интеграционные тесты используют Testcontainers.

Запуск тестов:

dotnet test Planara.Auth.sln

Запуск тестов с покрытием:

dotnet test Planara.Auth.sln \
--collect:"XPlat Code Coverage" \
--settings coverlet.runsettings

About

Сервис аутентификации и авторизации на .NET, GraphQL (HotChocolate) и JWT.

Topics

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Packages

Contributors

Languages