Я разрабатываю приложение FastAPI без сохранения состояния. Аутентификация осуществляется через Google OAuth (область профиля электронной почты openid). Я использую Authlib, а он использует SessionMiddleware (request.session) для хранения временных кодов и состояний. Теперь я хочу ограничить доступ к некоторым конечным точкам с помощью токена. Для этой цели я создаю JWT с адресом электронной почты пользователя из токена идентификатора, который я получаю от Google, сохраняю его в файлах cookie на клиенте и проверяю его каждый раз, когда поступает запрос к защищенной конечной точке. Он делает именно то, что я хочу.
Поскольку я все равно использую SessionMiddleware, я подумал о другом подходе. Я могу просто сохранить электронную почту пользователя в сеансе SessionMiddleware. Он автоматически создает файл cookie сеанса и сохраняет его на стороне клиента. Чтобы ограничить доступ, я могу получить пользователя из сеанса. В фоновом режиме Starlette автоматически проверяет файл cookie. Я уже протестировал его, и он также отлично работает и экономит мне много кода JWT.
Мой вопрос: сохраняет ли SessionMiddleware данные сеанса в файле cookie на клиенте или просто кодирует идентификатор и данные сеанса сохраняются на сервере?
Из моих исследований и собственной реализации я получаю неоднозначные ответы. Если я перезапущу свое приложение, я все равно смогу получить доступ к данным сеанса с помощью токена. Это намекает на то, что весь процесс является безгражданством. И если я проверю исходный код Starlette, я также думаю, что данные сеанса напрямую закодированы в файле cookie сеанса. Но куда бы я ни посмотрел, я вижу людей, говорящих, что SessionMiddleware работает с сохранением состояния.
Подробнее здесь: https://stackoverflow.com/questions/787 ... n-the-clie
Starlette SessionMiddleware хранит данные сеанса на сервере или на клиенте? ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
SessionMiddleware FastAPI/Starlette создает новый сеанс для каждого запроса.
Anonymous » » в форуме Python - 0 Ответы
- 37 Просмотры
-
Последнее сообщение Anonymous
-