【问题标题】:Expiring Multiple Sessions at Different Times in Rails 4在 Rails 4 中的不同时间过期多个会话
【发布时间】:2015-06-29 09:25:22
【问题描述】:

我在 Rails 4 中创建了一个应用程序,需要以不同的时间间隔使 3 个不同的会话过期,每隔几分钟一次,每小时一次,以及每个工作日一次。

但是,目前,我的所有 3 个会话似乎同时到期,它们的到期长度取自这些集合中的最小值,即每 5 分钟一次。知道我做错了什么吗?

目前,我尝试在会话存储中设置这些过期时间,如下所示:

Rails.application.config.session_store :cookie_store, key: 'current_customer', expire_after: 60.minutes 
Rails.application.config.session_store :cookie_store, key: 'staff_id', expire_after: 540.minutes
Rails.application.config.session_store :cookie_store, key: 'barcode_ids', expire_after: 5.minutes 

谢谢

【问题讨论】:

    标签: ruby-on-rails session ruby-on-rails-4 session-timeout session-store


    【解决方案1】:

    在您的代码示例中,您实际上将一个值设置了 3 次,每次都被新值覆盖。所以实际上它只使用了最后一行。

    Rails 只为每个用户的每个会话创建一个 cookie,另外两个您应该手动创建。

    【讨论】:

    • 除了创建原始键值对之外,我还为它们制作了过期键值对,例如 session[:expires_at] = Time.current + 1.hours 。要删除单个键值对,我似乎可以使用 if session[:expires_at]
    猜你喜欢
    • 2023-03-21
    • 2018-07-29
    • 2013-07-03
    • 1970-01-01
    • 2023-03-27
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多