【问题标题】:devise session time_out设计会话超时
【发布时间】:2011-12-29 12:23:50
【问题描述】:

我需要将 timeout_in 设置为如下所示的动态值,但这里 self 不是 User 模型的实例。任何人都可以知道我如何使用该条件。

设计 :database_authenticable, :registerable, :recoverable, :rememberable, :trackable, :validatable, :token_authenticable, :confirmable, :lockable, :timeoutable , :omniauthable,:timeout_in => (self.email.nil? ? 111.minutes : 112.minutes)

【问题讨论】:

    标签: devise session-timeout


    【解决方案1】:

    此功能在 Devise master 上,应该很快会在新的 Devise 版本上发布。您可以将 Gemfile 指向 Devise git 存储库并立即开始使用它。

    https://github.com/plataformatec/devise/wiki/How-To:-Add-timeout_in-value-dynamically https://github.com/plataformatec/devise/pull/1462

    【讨论】:

    • 我已经发布了具有此功能的 Devise 版本 1.5.2。检查它是否有效。
    【解决方案2】:

    我不知道您是否可以这样做,因为您在班级范围内。

    要做你想做的事,定义一个名为 timeout_in 的方法来实现这个逻辑。因为它有this methodDevise 尝试从实例方法中加载 timeout_in,然后尝试从类方法中获取它。

    编辑:删除了猴子补丁解决方案添加了一个更好的解决方案。

    EDIT2:改进答案。

    【讨论】:

    • 那么没有什么方法可以实现我的目标(根据用户类型设置 timeout_in 值。)?
    • 是的,有办法。可能我的回复没有说清楚,所以我改进了答案。
    • "之后它会尝试从类方法中获取它。"请原谅它。您能否给我您所要求的代码行。正如我在不使用设备 timeout_in 的情况下以不同的方式完成的那样:snippets.dzone.com/posts/show/7400
    • 谢谢罗德里戈,但它对我没有帮助...:(
    • Neelesh,我会想办法解决的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多