【问题标题】:HTML5 cache and authorization issuesHTML5 缓存和授权问题
【发布时间】:2013-09-07 00:08:33
【问题描述】:

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

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

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

【问题讨论】:

  • 引用清单的页面始终包含在应用缓存中。您应该使用 JavaScript 加载 所有 非静态数据,或者每次 HTML 更改时都需要更新清单文件。

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


【解决方案1】:

我知道这个问题很老,但我刚刚遇到了 CSRF 问题。

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-04
    • 2011-11-27
    • 2012-06-03
    • 2021-11-18
    • 1970-01-01
    • 2011-10-04
    相关资源
    最近更新 更多