2014-03-06 79 views
3

我試圖強制超過一定的秒數,但即使註銷的作品,我試圖實現自動重定向到一個URL,我無法實現。有任何想法嗎?如何在會話超時後在Symfony中自動重定向用戶?

我下面的(得票最多的答案)中給出的示例:How to log users off automatically after a period of inactivity?

+0

所以,你想不重定向註銷?你也希望這種情況發生,無論他們提出額外的請求嗎? IE用戶坐在頁面上20分鐘,然後重定向? – Chausser

+0

我想同時執行註銷和自動重定向/刷新,以便頁面可以將用戶發送到登錄屏幕。 – kratos

回答

3

您再次請求到服務器後,該指南將只是您註銷。意味着您目前的頁面可能會永遠保持打開狀態。

在給定的時間後強制請求到服務器將是非常容易的。在您的模板,你可以添加一個元刷新:

<meta http-equiv="refresh" content="300"> 

在HTML的頁眉部分把這個5分鐘後會重新加載頁面。該數字以秒爲單位。

然後在SessionIdleHandler類中,您只需將響應更改爲您想要的重定向。

來自:

$event->setResponse(new RedirectResponse($this->router->generate('fos_user_security_login'))); 

到:

$event->setResponse(new RedirectResponse($this->router->generate('my_bundle.my_route'))); 
+2

你也可以使用'$ response-> headers-> set('Refresh',300);'而不是'meta http-equiv'標籤。這樣的邏輯是在控制器而不是視圖。 –

+0

非常真實。國際海事組織更難追查那些小部分代碼是從哪裏來的,但它會起作用。 – Chausser

+0

我在哪裏設置$ response-> headers-> set('Refresh',300);因爲這需要適用於所有行動。也許meta標籤是更好的選擇? – kratos

相關問題