2017-04-11 74 views
0

我使用Devise,並且我想檢測用戶是否從其他設備登錄。 (我不想限制第二次會話,所以設計安全擴展將不起作用)。Rails檢測用戶是否從多個設備登錄

所以問題是 - 如何檢測用戶是否在同一時間從多個設備登錄。

+0

您需要修改會話控制器以將登錄信息存儲在單獨的表中,並通過IP或MAC地址等方式識別它們,並存儲用戶標識。然後您可以通過查詢表獲取「登錄」。 – max

+0

html請求沒有Mac地址(所以你不能從user_agent得到它) –

+0

如果用戶從咖啡館,工作或家庭(或移動電話)登錄,ip可以改變。所以這種方法會返回更多的錯誤,它會使用 –

回答

0

您可以使用fingerprintjs2檢測設備。用戶登錄時,將指紋存儲在會話中,並在用戶位於新設備上時查詢會話存儲。

+0

我們將會話存儲在服務器端。目的是爲了檢測來自同一個帳戶的兩個登錄是否同時發送電子郵件,如果用戶從同一個帳戶登錄兩次或更多。 –

+0

什麼是當前會話存儲?一個數據庫商店或緩存存儲像redis? –

+0

此外,如果用戶清除Cookie或關閉瀏覽器而不註銷,會發生什麼情況?他們是否仍然收到相同的電子郵件? –