2012-08-03 39 views
3

登錄用戶時,設計似乎無法使先前的會話無效。如果我以UserA身份登錄,返回到登錄屏幕並以UserB身份重新登錄,設計不會銷燬前一個會話並創建一個新會話,但會持續UserA會話。我想知道如何在用戶登錄時調用Session#destroy。我知道我可以重新實現Session#create方法,但是據我所知,這將涉及到生成所有控制器視圖。我想知道是否有更乾淨的方法來做到這一點。在登錄時破壞設計用戶會話

回答

0

我不確定我是否理解你要做什麼,但是如果你在UserB登錄時試圖使UserA會話無效,那麼當他們從不同的地方登錄時可能會遇到問題。

0

這是一個極端的情況。 UserA登錄,然後他登錄爲UserB,而不登出不會經常發生。如果您真的擔心,您可以重定向到網站的主頁,並顯示「已登錄」。或類似的東西。

+0

我不認爲這是一個「極端邊緣案例」,而是一個應用程序設計問題,我已經看到了很多次。包含登錄表單的面向公衆的頁面就是一個很好的例子,因爲可能沒有任何特定於登錄用戶的功能,因此沒有提示表明用戶已經登錄。您可以爭辯說用戶「應該「首先註銷,但開發人員無法直接控制用戶行爲。在我看來,某人首先輸入登錄信息的事實應該是對現有會話的隱式「登出」。 – 2015-10-17 23:15:11