我知道我可以做(每個用戶)的動態會話超時與所述色器件像hereRails的使用設計和動態會話超時會話存儲
此之前,精細的工作,但現在,我使用的軌道會話存儲和它doesn」工作了。
我搜索了很長時間,但沒有找到答案,有誰知道如何做到這一點?
感謝
我知道我可以做(每個用戶)的動態會話超時與所述色器件像hereRails的使用設計和動態會話超時會話存儲
此之前,精細的工作,但現在,我使用的軌道會話存儲和它doesn」工作了。
我搜索了很長時間,但沒有找到答案,有誰知道如何做到這一點?
感謝
我曾與一些before_filters現在做到了:
class ApplicationController < ActionController::Base
before_filter :update_session, :check_if_session_is_valid
...
def check_if_session_is_valid
session_timeout = current_user.try(:session_timeout) || 1800
if session[:timestamp] <= session_timeout.seconds.ago.to_i
session[:user_id] = nil
end
end
def update_session
session[:timestamp] = Time.now.to_i
end
而且在使用由我添加了這個輪詢控制器(會話不應該獲得通過輪詢更新):
skip_before_filter :update_session, :only => :get_new
使用設計會話超時最簡單的方法是使用Devise的'可超時'模塊。以下兩行將提供會話超時功能,僅當您在Rails應用程序中使用設計時。
第1步:在你User.rb模式聲明此
devise: timeoutable
第2步:
在應用程序/配置/初始化/ devise.rb添加以下行,通過默認設置設計是30分鐘。
config.timeout_in = 15.minutes
希望這對你有用!
謝謝!