2011-02-01 33 views
28

Phiên của tôi với thời gian chờ phát sinh sau 1-3 giờ không sử dụng (không chắc chắn chính xác khoảng thời gian). Làm thế nào tôi có thể điều chỉnh điều này?Đặt thời lượng phiên với Devise

Tôi đã xem qua các tài liệu và dường như không thể tìm thấy cài đặt cho việc này.

Cảm ơn

Trả lời

62

Tìm trong config/initializers/devise.rb. Có rất nhiều cài đặt cấu hình bao gồm config.timeout_in. Mặc định trong phiên bản của tôi là 30 phút. Bạn cũng có thể đặt nó trên chính mô hình:

class User < ActiveRecord::Base 
    devise :timeoutable, :timeout_in => 15.minutes 

Bây giờ bạn cũng có thể set the timeout dynamically.

+0

Có an toàn để thiết lập nó đến 2 tuần cho ví dụ? –

9

Với Rails4, điều tốt hơn để làm theo là:

Trong mô hình/user.rb: Thêm : timeoutable để rồi danh sách các module devise hiện có.

class User < ActiveRecord::Base 
    devise :timeoutable 
end 

Trong config/initializers/devise.rb: Đặt tham số thời gian chờ.

Devise.setup do |config| 
    config.timeout_in = 3.hours 
end 
1

toàn cầu:

class User < ActiveRecord::Base 
    devise (...), :timeoutable 
end 

Devise.setup do |config| 
    config.timeout_in = 3.hours 
end 

Ngoài ra nó có thể thiết lập tùy chọn timeout_in động

class User < ActiveRecord::Base 
    devise (...), :timeoutable 

    def timeout_in 
    if self.admin? 
     1.year 
    else 
     2.days 
    end 
    end 
end 
+1

Hey maaan! Thật tuyệt! nó có vẻ tốt và hoạt động quá)) – ilgam

+1

Có! Ngoại trừ có lẽ bạn muốn đảo ngược thời gian ở đó. Tốt hơn là làm cho người dùng có nhiều đặc quyền hơn xác thực thường xuyên hơn ... – hooverlunch

Các vấn đề liên quan