2012-02-09 98 views
3

我正在使用Devise處理我的網站身份驗證。有沒有一種方法可以在登錄我的應用程序時添加一項功能來記錄用戶的IP地址?使用Devise登錄時記錄用戶的IP地址(Rails 3.2)

我們只是想看看人們從哪裏登錄。

感謝

編輯

它已經指出,色器件用戶模型手錶登錄的用戶的當前和last_ip。我想記錄每個登錄信息。

回答

2

您可以使用User.rb內的守望者鉤子來執行任何您想要的操作。

Warden::Manager.after_set_user do|record, warden, opts| 
    logger.info("sign in at: #{record.current_sign_in_at}, #{record.current_sign_in_ip}") 
    record.account_logins.create!(ipAddress: record.current_sign_in_ip) 
end 
2

devise將用戶的當前和最後一個IP地址自動存儲在用戶表中。它使用的列名是current_sign_in_ip,last_sign_in_ip。要跟蹤用戶的所有會話,您可以使用https://github.com/shenoudab/devise_traceable

+0

這是在用戶模型中跟蹤符號的效果嗎?這是使用設計時的默認設置,但是如果將其刪除,我不知道它是否會停止記錄IP ... – jstim 2012-02-09 01:01:56

+0

是的你是對的。從設計文檔'可追蹤:追蹤登錄次數,時間戳和IP地址'。 – 2012-02-09 01:03:00

+0

我想創建用戶從哪裏登錄的運行歷史記錄。這樣,我可以確定一位用戶今天從加利福尼亞州和科羅拉多州上週登錄。當前的IP會在每次登錄時被覆蓋,對吧? – 2012-02-09 01:04:36

相關問題