【发布时间】:2012-03-28 10:26:02
【问题描述】:
我的主页上有一个登录表单。这导致设置了一个 csrf 令牌,这意味着我的页面没有存储在清漆缓存中。
我应该如何解决这个问题?
【问题讨论】:
标签: django caching csrf varnish
我的主页上有一个登录表单。这导致设置了一个 csrf 令牌,这意味着我的页面没有存储在清漆缓存中。
我应该如何解决这个问题?
【问题讨论】:
标签: django caching csrf varnish
您有两个主要课程:要么放弃使用 varnish 缓存页面,要么放弃在页面上使用登录表单。 CSRF 令牌(您不想丢失)将阻止您成功缓存页面在 varnish 中;即使考虑到这一点,您最终也会为每个访问的人提供一个页面副本,这违背了使用 varnish 的目的。
一种介于两者之间的解决方案是将没有登录表单的页面缓存在 varnish 中,然后使用 Javascript 插入登录表单。主页将被缓存,您应该能够使登录表单(通过 AJAX 拉出)足够快,不会给您带来问题。另一种可能的解决方案是将登录表单放在 IFRAME 中,尽管这会使事情变得更加复杂,因为您必须有一些东西来响应在主页中使用 Javascript 的登录(首先包括 IFRAME ) 以适当地重新加载它。
【讨论】: