Authorization без middleware: как я завернул Casbin в декораторы для FastAPI
Когда в FastAPI-проекте появляется нормальная авторизация, код быстро начинает расползаться в стороны. Сначала все выглядит терпимо: один Depends(get_current_user) , один Depends(get_enforcer) , одна ручная проверка. Потом роутов становится больше, правил доступа становится больше, и внезапно половина endpoint’ов начинает содержать не бизнес-логику, а обвязку вокруг нее. В какой-то момент меня перестал устраивать и классический подход через dependency injection в каждом роуте, и вариант с middleware. Хотелось, чтобы правило доступа было видно прямо рядом с маршрутом, но при этом не приходилось таскать авторизацию в сигнатуры всех функций. В итоге я собрал casbin-fastapi-decorator — тонкий слой над Casbin для FastAPI, который позволяет описывать authorization через декораторы. Идея простая:
https://habr.com/ru/articles/1018670/
#FastAPI #Python #Casbin #авторизация #rbac #abac #декораторы #api #open_source