Secrets - это мощная экосистема управления паролями.
- Сервис аутентификации: авторизация, регистрация. Поддерживает двухфакторную аутентификацию.
- Сервис пользователей: получение, удаление и изменение.
- Сервис паролей: создание, получение, удаление и изменение. Поддерживает шифрование паролей.
Аутентификация осуществляется посредством JWT-токенов, которые хранятся в куки браузера или заголовках.
Двухфакторная аутентификация осуществляется с помощью кода из приложения, например, Google Authenticator. Код является TOTP (Time-based One-time Password), то есть меняется каждые N секунд. В случае с Google Authenticator это 30 секунд.
- После 1 этапа аутентификации выдаётся JWT-токен, подтверждающий правильность введенных данных.
- После 2 этапа токен обновляется информацией о том, что пользователь прошел все этапы.
Пароли пользователей хранятся в зашифрованном виде. Применяется алгоритм симметричного шифрования AES. Данные шифруются с помощью секретного ключа Secrets.
- Продукт: FastAPI • PostgreSQL • SQLAlchemy • Alembic • cryptography
- Инструменты для разработки: PyCharm • Black • Ruff • Mypy • Pytest • Docker
- Создайте файл окружения
.env
на основании.env.example
. - Запустите проект:
make run-prod
- Готово!
Made with ❤️ by Ivan Stasevich