使用 Devise 使旧会话超时

问题描述 投票:0回答:1

我正在使用 Devise 来管理我的 Rails 应用程序的登录。我想设置最大会话长度:用户将在 10 小时后被迫再次登录。

nb 这是不可超时。 Timeoutable 为非活动会话设置会话到期时间。例如,如果用户在 30 分钟内没有单击链接,则会将其注销。

即使是活动会话,我也想使其过期,并且超时时间比我的超时期限更长。

ruby-on-rails security session devise
1个回答
0
投票

您将需要自定义逻辑来完成此行为,AFAIK Devise 不提供此功能。

例如,您可以尝试使用如下内容:https://github.com/markets/sudo_rails。有了这个 gem,您可以通过在控制器中使用

sudo
宏来要求用户再次输入密码以进行一些合理的操作:

class SettingsController < ApplicationController
  sudo only: :sensible_settings
end

它带有 Devise 集成,您还可以定义自定义持续时间:

# config/initializers/sudo_rails.rb
SudoRails.setup do |config|
  config.sudo_session_duration = 10.minutes
end
© www.soinside.com 2019 - 2024. All rights reserved.