2013-10-14 38 views
0

我需要知道是否有用戶登錄我的網站。爲此,我只有他的會話ID。如何知道用戶是否使用他的會話ID登錄

我使用這個ID:session-> getId();

¿這可能嗎?

在此先感謝。

+0

可能重複的[如何檢查用戶是否在控制器內部登錄Symfony2?](http://stackoverflow.com/questions/10271570/how-to-check-if-an-user-is-logged -in-symfony2-inside-a-controller) –

+0

謝謝,但這篇文章是不同的,我想知道一個特定的用戶是否在我的網站上登錄。 – user2794692

回答

0

自定義字段添加到會話時,然後在用戶登錄只是檢查該字段

+0

謝謝,但這不是解決方案,我只想知道是否在任何時刻一個用戶使用他的ID會話登錄我的網站。 – user2794692

0

鑑於網絡本質上是無狀態的,這是很難知道,如果一個特定的用戶登錄到網站。

實現您的目標的一種方法是保持所有登錄用戶的運行日誌和上次訪問時間。然後,您可以查詢該日誌,如果用戶上次訪問時間少於5分鐘,則可以說用戶已登錄到您的網站。這隻會告訴你用戶是否登錄了你的網站,而不是你的網站是否是他們瀏覽器中的活動標籤。

另一種獲取更多「實時」信息的方式是使用類似於SignalR這樣的東西,它可以讓你推送到瀏覽器。過去,我使用過SignalR來發送系統狀態消息給瀏覽器並讓它自動更新頁面。關於SignalR的好處是它維護所有連接的客戶端的內存列表。

+0

謝謝,但是,在第一種情況下,我怎麼知道會話的tokenID,哪個用戶引用了這個令牌? – user2794692

+0

你將不得不在服務器上維護一些狀態,在某種數據中存儲令牌ID和用戶之間的關聯。 –

相關問題