Web3 Крипто Аутентификация (MetaMask)

Веб-программирование 13 385 UAH
Работа 5 из 13
Готовый Web3 Boilerplate: FastAPI + Web3 Crypto Auth (MetaMask) + PostgreSQL + Docker

Современное, высокопроизводительное REST API ядро, спроектированное по принципам Clean Architecture с интеграцией аутентификации через криптографическую подпись кошельков Web3 (EVM / MetaMask / WalletConnect). Проект полностью контейнеризован с помощью Docker и оптимизирован для мгновенного локального развертывания или продакшен-деплоя.

Данный шаблон разработан как универсальный, безопасный и архитектурно отшлифованный фундамент (User Management System) для разработки P2P-платформ, арбитражных сервисов, крипто-маркетплейсов, Web3 SaaS-решений и децентрализованных приложений (dApps). Он полностью исключает необходимость писать базовую логику авторизации и профилей с нуля.

Архитектурные особенности и технологический стек

1. Безпарольная Web3 аутентификация: Вместо классической уязвимой связки email/пароль реализована криптографическая верификация публичного ключа пользователя на основе подписи сообщения (формат EIP-191). Проверка выполняется нативно на бэкенде с помощью библиотек eth-account и eth-keys, что гарантирует максимальную безопасность сессий.

2. Clean Architecture и Pydantic v2: Четкое разделение ответственности слоев. Модели SQLAlchemy полностью изолированы, работа с СУБД построена на независимых роутерах, а входная и выходная валидация данных возложена на схемы Pydantic v2 (без ручного сбора JSON-словников в контроллерах).

3. Наскрізний стандарт UUID v7: Все дочерние и связанные сущности системы (профили, конфигурации пользователей) используют современные, упорядоченные по времени идентификаторы UUID v7. Это исключает перебор инкрементных ID злоумышленниками, скрывает реальные объемы данных системы и ускоряет индексацию в PostgreSQL.

4. Атомарность и Lazy Initialization данных: Профили и системные конфигурации жестко связаны с пользователем через каскадные связи (ondelete="CASCADE"). Создание пустого анонимного профиля и дефолтных настроек интерфейса происходит атомарно в рамках одной транзакции в момент первого коннекта кошелька, что исключает состояние гонки данных (Race Condition).

5. Полная автоматизация Docker и CI/CD: Инфраструктура полностью изолирована от хост-системы. Настроенный скрипт деплоя автоматически контролирует доступность PostgreSQL, а директива create_all надежно инициализирует структуру базы данных. Реализован автоматический изолированный скрипт сида базы данных, который при старте контейнера проверяет и принудительно создает или обновляет права суперадмина для определенного административного Web3-кошелька.

6. Оптимизация для генераторов типов: Спецификация Swagger. REST-маршруты полностью готовы к бесконфликтной автоматической генерации строгих фронтенд-типов (TypeScript) через утилиты Orval или OpenAPI-codegen.

Доступная REST спецификация эндпоинтов

Аутентификация:
POST /api/v1/auth/connect: Проверка крипто-подписи сообщения и выдача бессрочного JWT Bearer токена сессии. Автоматически регистрирует новый кошелек, если его нет в базе.
Управление Web3 аккаунтом (Доступ по JWT):
GET /api/v1/users/me: Получение полной информации о текущем кошельке (статус, рейтинг, слоты, лимиты сделок).
PUT /api/v1/users/me: Обновление публичных метаданных аккаунта (display_name).
Управление профилями (Доступ по JWT):
GET /api/v1/profiles/me: Получение анонимного профиля (биография, социальные ссылки, extra_data).
PUT /api/v1/profiles/me: Редактирование данных профиля.
Системные конфигурации (Доступ по JWT):
GET /api/v1/configs/me: Получение индивидуальных настроек (тема интерфейса, язык, часовой пояс, параметры приватности и json-уведомления).
PUT /api/v1/configs/me: Изменение системных конфигураций интерфейса кошелька.
Мониторинг: GET /health: Healthcheck системы для балансировщиков нагрузки продакшена.

Быстрый старт для локальной разработки

Развертывание изолированной экосистемы одной командой с автоматическим подтягиванием изменений (Hot-Reload):

docker compose up --build