Ruby on rails 使用designe调用sign_out方法作为后台任务
我正在构建一个rails应用程序,如果当前时间超过下午6点,我必须自动注销少数用户,如果当前时间超过晚上7点,则必须自动注销其他用户。我正在使用Desive进行身份验证。我没有找到任何解决办法使用设计。Desive在参数中只有一个用于不活动的超时值 我也尝试过延迟的工作。但在异步任务执行过程中,会话哈希无法识别Ruby on rails 使用designe调用sign_out方法作为后台任务,ruby-on-rails,ruby,devise,Ruby On Rails,Ruby,Devise,我正在构建一个rails应用程序,如果当前时间超过下午6点,我必须自动注销少数用户,如果当前时间超过晚上7点,则必须自动注销其他用户。我正在使用Desive进行身份验证。我没有找到任何解决办法使用设计。Desive在参数中只有一个用于不活动的超时值 我也尝试过延迟的工作。但在异步任务执行过程中,会话哈希无法识别 是否有我缺少的某种明显的解决方案?从1.5.2版开始,您可以在Desive上动态设置过期期限。 也许你可以试试这样: class User < ActiveRecord::Bas
是否有我缺少的某种明显的解决方案?从1.5.2版开始,您可以在Desive上动态设置过期期限。 也许你可以试试这样:
class User < ActiveRecord::Base
devise (...), :timeoutable
def timeout_in
if should_logout_at_19
timeout_period_for 19
elsif should_logout_at_18
timeout_period_for 18
else
...
end
end
# period in seconds until next session expiration hour.
def timeout_period_for(given_hour)
next_time = if Time.now.hour > given_hour
Date.tomorrow.to_time.change(hour: given_hour)
else
Date.today.to_time.change(hour: given_hour)
end
next_time - Time.now
end
def should_logout_at_19
# user criteria to logout at 7 PM
end
end
设计使用签名cookie。你可以把过期添加到cookies中。你试过了吗?