Rails:如何启用永久会话?

时间:2019-01-15 09:16:04

标签: ruby-on-rails session

我有一个运行于版本5.2.1上的Rails应用程序 我的应用程序无法保持持续的会话,并且用户需要频繁(一周几次)重新登录。

我希望永久保留用户会话(或至少几年),直到用户自己退出。

我没有更改有关会话时间的任何参数,因此我认为它是默认设置。在这里,如果您能指导我如何更改应用程序的会话时间,将不胜感激。

我使用devise进行登录,这是用户模型配置:

class User < ApplicationRecord
  attr_accessor :admin_user, :auth_login
  has_ancestry

  # Include default devise modules. Others available are:
  # :confirmable, :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable, :omniauthable

1 个答案:

答案 0 :(得分:2)

请注意用户模型中设备配置上方注释中列出的模块。您可以使用这些模块,而无需使用额外的gem。取消注释:timeoutable模块的注释,并在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 = 3.years