首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django会话-在登录/注销之间保留会话数据

Django会话-在登录/注销之间保留会话数据
EN

Stack Overflow用户
提问于 2014-10-22 19:10:02
回答 2查看 3.1K关注 0票数 2

我一直在做一个小项目,我开始想知道在用户登录或注销后如何保留一些数据。

例如,假设用户正在向他的购物车添加商品,但他没有登录。默认情况下,Django会话在用户登录或注销后生成新的session_id。当用户添加5个产品到他的购物车时,然后他登录,然后他的购物车将被清除。

如何在用户数据中实现持久化元素?例如,我是否应该使用一些信号或某种中间件来将购物车从旧会话绑定到新会话?

我的主要目标是保证它的安全,所以我不想禁用某些安全机制。

EN

回答 2

Stack Overflow用户

发布于 2014-10-22 19:54:02

您必须使用数据库支持的会话。从文档中:

您需要在您的INSTALLED_APPS设置中添加'django.contrib.sessions‘。

配置安装后,运行manage.py migrate以安装存储会话数据的单个数据库表。

然后,您必须确保在注销/登录过程中不会调用session.flush(),这意味着避免使用将调用session.flush()的django.contrib.auth.logout(),它也是在django.contrib.login()中调用的。自行login and logout用户,以避免丢失会话数据。login/logout的源码。

票数 1
EN

Stack Overflow用户

发布于 2017-01-25 18:39:37

作为一种安全措施,会话将在登录/注销时刷新。如果您想保留一些变量,可以在以下位置使用解决方案:

https://stackoverflow.com/a/41849076/146289

它基本上涉及到备份旧值,然后在新会话中恢复它们。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26506102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档