【问题标题】:Set the nil value for session_id while session timeout - devise在会话超时时设置 session_id 的 nil 值 - 设计
【发布时间】:2013-12-03 09:56:40
【问题描述】:

在 rails 3.2.13 项目中,我使用 devise(1.4.2) 插件进行身份验证系统。在这里,我需要在会话超时后将 current_user 的 session_id 更新为 nil 值。如何覆盖超时功能?

登录后,session_id 字段将更新为“A9nEDMZFl7D4ytSfWxrY”。退出后, session_id 字段将更新为 nil 值。现在我需要为会话到期更新相同的 nil 值。如何修改会话过期功能?

在会话的创建操作中,我正在使用 Devise.friendly_token 更新 session_id

【问题讨论】:

    标签: ruby-on-rails session devise


    【解决方案1】:

    您不需要将会话设置为零。你应该做reset_session,重置会话ID。

    现在,你提到的那两个案例已经被devise处理了:

    • 在创建会话时,设计一个reset_session 来阻止会话固定
    • 当您的会话过期时,您的会话会发生什么并不重要:您将 重定向到登录,登录后您的会话将再次重置

    如果您应该将会话存储在表中,那么您可以做得更好,只需从数据库中删除过期的会话即可。如果您使用 redis 作为会话存储,您可以自动使会话过期,它会为您处理。

    请注意:这很好,因为无论如何设计都不会允许过期的会话。

    最后一句话:你为什么还在使用 1.4.2 版本?

    【讨论】:

      猜你喜欢
      • 2011-12-29
      • 1970-01-01
      • 2012-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-02
      • 1970-01-01
      • 2018-07-22
      相关资源
      最近更新 更多