2014-04-21 32 views
0

我是Ruby on Rails的新手。我試圖實現會話超時使用寶石 自動會話時間out.Thing是我的會話正在過期正確。但我想要的是,雖然會話過期,我想要的網址去特定的鏈接(比如www.abcd.com)。另外我想要在會話過期時調用一個方法。現在1分鐘後,當我重新加載我的會話過期,但它重新定位到同一頁面。auto-session-timeout - Ruby on Rails

我有這個在我的應用程序控制器

auto_session_timeout 1.minute 

,並在我的路線

match 'active' => 'sessions#active' 
match 'timeout' => 'sessions#timeout' 

,並在我的sessionscontroller

def active 
    p "--------------Active--------------" 
    end 

    def timeout 

     p "------------TimeOut--------------" 
     RestClient.post 'https://www.abcd.com', :ApplicationName => 'ABCD Website&Application', :URL => 'http://www.xyz.com/login/' 
     end 

我認爲雖然會議得到我會得到這個方法過期。但它不工作。在此先感謝

+1

如果我理解你是正確的,爲什麼你不能添加一個'before_filter authenticate'或者什麼來檢查會話是否過期並從那裏重定向用戶?這不應該有幫助嗎? –

+0

@PamioSolanky嗨,正如我剛纔所說,我真的不知道該怎麼做。一位朋友告訴我,用這顆寶石做這件事很容易,那就是我爲什麼這樣做的原因。你可以用你說的方式幫助我嗎? –

回答

1

編輯您的文件 - 配置/初始化/ session_store.rb

App::Application.config.session_store :cookie_store, 
             :key => "_yourapp_session", 
             :expire_after => 2.minutes 

然後在你的應用程序控制器: before_filter: authenticate

def authenticate 
    redirect_to some_path if session[:session_key].nil? 
end 

注意:您必須手動設置會話密鑰。 另外,檢查這個答案應該有幫助click here

+0

這有助於@Nidhin? –