如果該用戶在某臺機器上登錄,是否可以顯示「已登錄」消息? 這個東西可以使用數據庫。 但是我已經實現了登錄和註銷的會話,我認爲會話無法顯示「已登錄」。Ruby On Rails中的會話
請爲此建議最佳方式。
如果該用戶在某臺機器上登錄,是否可以顯示「已登錄」消息? 這個東西可以使用數據庫。 但是我已經實現了登錄和註銷的會話,我認爲會話無法顯示「已登錄」。Ruby On Rails中的會話
請爲此建議最佳方式。
如果他們去了另一臺電腦?如果你使用session [:something] - 它存儲在瀏覽器中。對於通過不同瀏覽器存儲的任何內容,您必須使用數據庫來查看狀態。
我認爲這是可能的,但有人說,我不喜歡它。我認爲你擔心,因爲你不能從會話數據中輕鬆識別用戶?
確保在用戶每次通過應用程序控制器中的before_filter訪問應用程序時都更新用戶模型。
在登錄過程中,您可以通過指定與會話清理時間限制相同的時間限制來查詢「登錄」用戶。
你可以做這樣的事情:
User.where("email = ? and updated_at >= ?",login_email,20.minutes.ago)
如果你想避免同一用戶名同時登錄。通過在存儲登錄用戶的IP地址的用戶表中添加一列來實現最佳實施。此外
到默認的CookieStore:
否則,你可以改變會話存儲機制爲使用的。
在我誠實的意見中,實現你所需要的最簡單的方法是將所有會話存儲在數據庫中。之後,您可以在登錄之前檢查是否有人已存儲在數據庫中 Rails sessions current practices(第一個答案)