【问题标题】:are cookies mandatory for Ruby on Rails app?Ruby on Rails 应用程序必须使用 cookie 吗?
【发布时间】:2010-02-14 02:22:22
【问题描述】:

Rails 依赖于 cookie 是真的吗?似乎flash是一部分 的会话,并且会话使用 cookie ......所以当我禁用 cookie 时 Firefox,一个正在运行的 Rails 应用程序展示

[错误] ActionController::InvalidAuthenticityToken

那么,为了让 RoR 应用程序正常工作,cookie 是强制性的吗?

更新: 或者,要让 Rails 应用再次运行,最简单的方法是什么? (如果只有一台服务器(Apache 运行 mod_rails),那会更容易吗?)

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    它们不是强制性的,但有些事情你不能没有 cookie。您可以按照here 的说明关闭真实性令牌。

    【讨论】:

    【解决方案2】:

    使用 cookie 不是强制性的,但它是 rails 2.x 以上的默认设置。当您尝试将 cookie 存储在多个服务器的内存中时(并且您会遇到诸如粘滞会话、丢失用户数据等问题),使用 cookie 可以作为一种简单的解决方案。

    您可以设置 rails 存储会话数据的位置;那是闪光灯和与特定用户相关的任何东西。在 environment.rb 中,您可以使用 config.action_controller.session_store 配置存储会话的位置。选项有::cookie_store、:active_record_store、:p_store、:drb_store、:mem_cache_store 或:memory_store

    cookie_store 是默认值,如果您将该选项注释掉或从 environemnt.rb 中删除它。它也是最通用的。如果您有多个服务器,则对用户的一个请求可能会进入一个服务器,而下一个请求可能会进入另一台服务器。在这种情况下,您不能使用 memory_store,因为第二台服务器不会知道当前用户的任何信息。

    通过将会话信息存储在加密的 cookie 中,服务器上存储此信息的负载就会减少。唯一的缺点是对服务器的每个请求都需要传递 cookie(通常

    :cookie_store, :mem_cache_store 和 :active_record_store 是最常用的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-15
      • 2017-12-09
      • 1970-01-01
      • 1970-01-01
      • 2016-06-12
      • 2014-11-05
      相关资源
      最近更新 更多