Как сохранить значения в сеансе анонимных файлов cookie в Pyramid с помощью Beaker - PullRequest
3 голосов
/ 05 октября 2011

У меня есть приложение Pyramid, использующее сеансы cookie Beaker Encrypted.Я могу войти в систему с помощью RequestWithUserAttribute, pyramid.security.authenticated_userid (), запомнить () и забудь () просто отлично.

Однако большинство пользователей никогда не будут входить в систему, и есть определенныезначение, которое я хотел бы сохранить в файле cookie (зашифрованном, если это возможно), который пользователь дал тогда сайту (его местонахождение или любая строка в этом отношении).

Я не могу найти, как установить больше, чемпринципал для сеанса, использующего функцию Remember (), и я предпочел бы не посылать свои собственные заголовки Set-Cookie, не говоря уже о шифровании данных.

Я обнаружил, что вы можетепередать аргументы ключевого слова в запомнить ():

remember(request, principal, *kw)

Но когда я пытаюсь отправить любые дополнительные значения, я постоянно сталкиваюсь с ошибкой.

В идеале я ожидал бы что-то вроде этого:

remember(request, 'public', {'location':request.params.get('location')})

Это даже правильный маршрут?

1 Ответ

3 голосов
/ 05 октября 2011

Сессии и Аутентификация в Пирамиде (и вообще) являются непересекающимися понятиями.Есть много людей, которые изучают способ хранения аутентифицированного пользователя «в сеансе», но это никоим образом не является обязательным требованием.Смысл сеанса заключается в хранении произвольных данных для посетителя на вашем сайте через запросы.Это может быть тот факт, что они вошли в систему, или это могут быть ваши случайные строки.

Дело в том, что вы можете хранить случайные вещи в сеансе.Он доступен в Pyramid (после настройки session_factory в Конфигураторе) непосредственно для объекта запроса через request.session.

request.session['mykey'] = 'some random value'

. Это не требует использования аутентификации, запоминания / забытия иливсе, кроме фабрики сессий.

https://docs.pylonsproject.org/projects/pyramid/en/1.2-branch/narr/sessions.html

...