在第二个单击链接时,Django会话在第一个选项卡中被放弃

时间:2014-04-07 13:23:31

标签: django session cookies

不知道这是否特定于Django,但我的网站是我唯一经历过的网站,而且我不认为我在会话中做了什么特别的事情数据(仅使用旧式数据库后端)。

当用户登录(在标签A中)并在同一个域上打开新标签(标签B)时,cookie会转到第二个标签。但是,如果用户点击标签B中的链接,然后刷新标签A或点击该标签中的链接,他就会立即退出。

我一直在谷歌搜索这个问题多年但没有运气,所以非常感谢任何人的帮助。如果这是一个非常基本的事情,请道歉。

MIDDLEWARE_CLASSES = (
    'django.middleware.cache.UpdateCacheMiddleware',
    'bambu.sites.middleware.DomainRedirectMiddleware',
    'nymbol.utils.middleware.RequireHTTPSMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.locale.LocaleMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'maintenancemode.middleware.MaintenanceModeMiddleware',
    'bambu.analytics.middleware.AnalyticsMiddleware',
    'bambu.enqueue.middleware.EnqueueMiddleware',
    'bambu.minidetect.middleware.MiniDetectMiddleware',
    'nymbol.utils.middleware.UserPlanMiddleware',
    'nymbol.manager.middleware.APILegacyMiddleware',
    'django.middleware.cache.FetchFromCacheMiddleware'
)
  • bambu.sites.middleware.DomainRedirectMiddleware将访问者重定向到正确的域名,因为该网站有多个别名域
  • nymbol.utils.middleware.RequireHTTPSMiddleware将某些网址的用户重定向到相同的SSL版本
  • maintenancemode.middleware.MaintenanceModeMiddleware在提交并推送
  • 后部署站点时显示503消息
  • bambu.analytics.middleware.AnalyticsMiddleware将请求中的JavaScript分析
  • bambu.enqueue.middleware.EnqueueMiddleware允许视图和模板标记将CSS和JavaScript排入队列
  • bambu.minidetect.middleware.MiniDetectMiddleware检测浏览器是否可移动
  • nymbol.utils.middleware.UserPlanMiddleware将用户当前所在的付款方案存储在request对象中(因为它管理网站范围的权限)
  • nymbol.manager.middleware.APILegacyMiddleware将一个特定网址中的网址格式更改为另一个网址(此问题绝对没有影响)

1 个答案:

答案 0 :(得分:1)

事实证明我遇到的问题与Django无关,而是由于一些不安全的图像URL通过TLS(基本上是SSL)传递。

这可能是对此问题的一个错误解释,但似乎当浏览器 - Chrome或Firefox - 检测到从安全网址引用的http:// URL时,它放弃了会话,以便下次刷新时或点击另一个链接,我将被带到登录页面,因为我的cookie将不再有效。

正如我所说,可能并不完全是它的下降,但这非常实际的结果,纠正这些网址(当然最好的做法)完全排序了问题。