HTML5缓存和授权问题

时间:2012-12-03 23:24:15

标签: ruby-on-rails html5 authentication caching backbone.js

将HTML5缓存添加到rails on backbone中编写的单页应用程序后,我遇到了问题。浏览器(chrome)没有重新加载html,这会以两种方式导致问题:

1)主干的骨架html有时会发生变化 - 至少让骨干知道用户已登录。但是如果未加载html,则应用程序不知道(例如刷新后)。我可以在页面加载时查询服务器,但这是我跳过避免的另一个请求。这也会强制将所有的permisions逻辑移动到客户端 - 所以要么从服务器复制cancan设置或将其嵌入到html中 - 我们遇到了上述问题。

2)Rails的csrf标记在html中,它们也不会改变 - 导致任何ajax帖子无效。对于这个,我不知道该怎么做。从我读到的csrf令牌是为会话生成的,所以也许在登录/注销时我可以用js更新它。无论在哪里获得它,它会起作用吗?

1 个答案:

答案 0 :(得分:0)

我知道这个问题已经过时但我刚刚遇到了CSRF问题。

尝试在清单文件中包含CSRF令牌作为注释。因此,每当它发生变化时,它都会改变清单并强制重新加载。

CACHE MANIFEST
# include CSRF token in manifest to force reload when it changes
# <%= form_authenticity_token %>

为了安全起见,你可以通过哈希算法运行几次