dar*_*ush 0 session ruby-on-rails devise ruby-on-rails-5
我正在开发一个包含许多角色的系统,其中一个角色ADMIN
可以访问系统的关键部分,我想限制用户的会话,当他/她不与系统交互一段时间时,会话到期,下次他/她应该再次登录,我该怎么做?
Devise有一个可以使用的超时模块.
在你的User
模型,你会包括:timeoutable
你的devise
模型,并在devise.rb
初始化你会配置它媲美:
# ==> Configuration for :timeoutable
# The time you want to timeout the user session without activity. After this
# time the user will be asked for credentials again. Default is 30 minutes.
config.timeout_in = ENV['YOUR_TIME'].to_i.minutes
Run Code Online (Sandbox Code Playgroud)
如果您希望更灵活地使用您的用户类型,可以为您的User
模型添加类似这样的方法:
def timeout_in
if self.type == 'Admin'
45.minutes
else
60.minutes
end
end
Run Code Online (Sandbox Code Playgroud)
这将用于代替timeout_in
在初始化程序中设置.
归档时间: |
|
查看次数: |
1411 次 |
最近记录: |