代码之家  ›  专栏  ›  技术社区  ›  Matthew Savage

Rails会话是否可以“及时”创建?

  •  6
  • Matthew Savage  · 技术社区  · 14 年前

    我对Ruby on Rails中会话生命周期(特别是v3及以上版本)的理解是,会话是在请求开始时为每个请求创建的,如果该请求没有携带现有的会话cookie,将创建一个新的会话cookie,否则会话cookie将被反序列化并存储在会话散列中。

    当然,这样做的目的是支持许多安全特性,如CSRF等。

    我知道可以设置Varnish etc来创建包含cookie详细信息的对象散列,这将把缓存的数据作用于该会话(以及该用户),但是我想知道这是否完全必要。

    我想知道是否有可能(通过预先存在的功能,或者自己构建功能)允许开发人员控制何时需要会话,并且只有在指定了会话时才需要使用cookies进行回传、会话初始化/反序列化等。

    那,或者我在错误地思考这个问题,需要从另一个角度来解决这个问题。。。

    2 回复  |  直到 14 年前
        1
  •  1
  •   spivak    14 年前

    据我所知,rails会话可以通过ActionController::SessionManagement进行相当深入的控制

    http://ap.rubyonrails.org/classes/ActionController/SessionManagement/ClassMethods.html#M000070

    在API文档中,有一些例子可以在每个操作、每个控制器等中禁用它。

        2
  •  1
  •   MDaubs    14 年前