不知道这是否特定于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
在提交并推送bambu.analytics.middleware.AnalyticsMiddleware
将请求中的JavaScript分析bambu.enqueue.middleware.EnqueueMiddleware
允许视图和模板标记将CSS和JavaScript排入队列bambu.minidetect.middleware.MiniDetectMiddleware
检测浏览器是否可移动nymbol.utils.middleware.UserPlanMiddleware
将用户当前所在的付款方案存储在request
对象中(因为它管理网站范围的权限)nymbol.manager.middleware.APILegacyMiddleware
将一个特定网址中的网址格式更改为另一个网址(此问题绝对没有影响)答案 0 :(得分:1)
事实证明我遇到的问题与Django无关,而是由于一些不安全的图像URL通过TLS(基本上是SSL)传递。
这可能是对此问题的一个错误解释,但似乎当浏览器 - Chrome或Firefox - 检测到从安全网址引用的http:// URL时,它放弃了会话,以便下次刷新时或点击另一个链接,我将被带到登录页面,因为我的cookie将不再有效。
正如我所说,可能并不完全是它的下降,但这非常实际的结果,纠正这些网址(当然最好的做法)完全排序了问题。