FastAPI получает идентификатор пользователя из ключа APIPython

Программы на Python
Ответить
Anonymous
 FastAPI получает идентификатор пользователя из ключа API

Сообщение Anonymous »

В fastAPI можно просто написать зависимость безопасности на уровне маршрутизатора и защитить всю часть URL-адресов.
router.include_router(
my_router,
prefix="/mypath",
dependencies=[Depends(auth.oauth2_scheme)]
)

Это позволяет избежать повторения большого количества кода.
Единственная проблема заключается в том, что я хотел бы защитить часть URL-адресов зависимостью на уровне маршрутизатора, которая проверяет достоверность токена пользователя и получает идентификатор пользователя для этого токена.
Единственный способ, который я нашел, — это добавить еще одну зависимость ко всем функциям, но это приводит к повторению кода, который я только что сохранил.
/>Коротко говоря, есть ли способ добавить зависимость на уровне маршрутизатора, получить и вернуть идентификатор пользователя и передать возвращаемое значение функции обработки? Что-то вроде
router.py
router.include_router(
my_router,
prefix="/mypath",
dependencies=[user_id = Depends(auth.oauth2_scheme)]
)

my_router.py
my_router = APIRouter()

@my_router.get("/my_path")
async def get_my_path(**kwargs):
user_id = kwargs["user_id"]
# Do stuff with the user_id
return {}


Подробнее здесь: https://stackoverflow.com/questions/632 ... om-api-key
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»