gpt4 book ai didi

python - 如何使用 Beaker 将值保存到 Pyramid 中基于匿名 cookie 的 session

转载 作者:行者123 更新时间:2023-11-28 16:51:00 24 4
gpt4 key购买 nike

我有一个使用 Beaker 加密 cookie session 的 Pyramid 应用程序。我可以使用 RequestWithUserAttribute、pyramid.security.authenticated_userid()、remember() 和 forget() 登录用户。

但是,大多数用户永远不会登录,并且我想将一个特定的值保存在用户提供的 cookie 中(如果可能的话,加密)然后网站(他们的位置,或任何字符串就此而言)。

我不知道如何使用 remember() 函数为 session 设置更多信息,我宁愿不发送自己的 Set-Cookie header ,更不用说自己处理数据加密了。

我发现您可以将关键字参数传递给 remember():

remember(request, principal, *kw)

但是当我尝试发送任何额外的值时,我不断遇到错误。

理想情况下我会期待这样的事情:

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

这是正确的路线吗?

最佳答案

Pyramid 中的 session 和身份验证(通常)是不相交的概念。很多人都知道如何存储经过身份验证的用户“在 session 中”,但这绝不是必需的。 session 的要点是跨请求为您网站的访问者存储任意数据。这可能是因为他们已登录,也可能是您的随机字符串。

重点是您可以在 session 中存储随机内容。它在 Pyramid 中可用(在您在配置器上设置 session_factory 之后)通过 request.session 直接在请求对象上。

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

这不需要您使用身份验证、记住/忘记或 session 工厂以外的任何东西。

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

关于python - 如何使用 Beaker 将值保存到 Pyramid 中基于匿名 cookie 的 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7655784/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com