Как включить конечные точки с дополнительной аутентификацией с помощью платформы LitestarPython

Программы на Python
Ответить
Anonymous
 Как включить конечные точки с дополнительной аутентификацией с помощью платформы Litestar

Сообщение Anonymous »

Я пытаюсь определить конечные точки в приложении Litestar, в которых аутентификация не является обязательной, но я не понимаю, как это можно сделать с помощью механизма безопасности JWTAuth.
При использовании конечной точки, исключенной из аутентификации, не происходит попыток аутентификации запроса независимо от того, был ли отправлен токен или нет. То есть такой подход не работает:

Код: Выделить всё

async def retrieve_user_handler(token: Token, connection: ASGIConnection[Any, Any, Any, Any]) -> User | None:
return DB.get_user(token.sub)

jwt_auth = JWTAuth[User](
retrieve_user_handler=retrieve_user_handler,
token_secret=environ.get("JWT_SECRET", "abcd123"),
)

@get("/some-path", exlude_from_auth=True)
def some_route_handler(request: Request[User, Token, Any]) -> Any:
if request.user:
pass  # Set some data based on the user
else:
pass  # Set data to a hardcoded value

app = Litestar(
route_handlers=[login_handler, some_route_handler],
on_app_init=[jwt_auth.on_app_init],
)
Можно ли внести небольшое расширение или модификацию в конфигурацию JWTAuth, чтобы включить дополнительную аутентификацию, или для этого потребуется определить специальную зависимость или промежуточное программное обеспечение?

Подробнее здесь: https://stackoverflow.com/questions/798 ... r-framewor
Ответить

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

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

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

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

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