这些是将模块添加到现有Devise安装的说明:https://github.com/plataformatec/devise/wiki/How-To:-change-an-already-existing-table-to-add-devise-required-columns
但我似乎找不到timeoutable
的必要列。
我查找了timeoutable
在Devise库中需要的字段:https://github.com/plataformatec/devise/blob/master/lib/devise/schema.rb - 但该模式文件中没有这样的方法。
该模型只有一个自定义方法,不引用列:http://rdoc.info/github/plataformatec/devise/master/Devise/Models/Timeoutable
如何添加该功能?
感谢。
答案 0 :(得分:23)
timeoutable
指的是登录会话超时。不需要额外的列,只需将其添加到您的模型中即可。
timeoutable
挂钩包含所有魔法(来源:https://github.com/plataformatec/devise/blob/master/lib/devise/hooks/timeoutable.rb)
答案 1 :(得分:19)
您只需要向用户模型添加timeoutable
:
devise :timeoutable
并在config/initializers/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 = 30.minutes
答案 2 :(得分:0)
只需添加到您的模型中即可:
devise :timeoutable, timeout_in: XX.minutes
用所需的分钟数代替XX。
答案 3 :(得分:0)
timeoutable
如果您有remember_me = true
https://github.com/plataformatec/devise/blob/master/lib/devise/hooks/timeoutable.rb#L26