Starlette SessionMiddleware хранит данные сеанса на сервере или на клиенте?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Starlette SessionMiddleware хранит данные сеанса на сервере или на клиенте?

Сообщение Anonymous »

Я разрабатываю приложение 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
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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