2012-02-09 8 views
3

Deviseを使用して自分のサイトの認証を処理しています。自分のアプリにログインしたときにユーザーのIPアドレスを記録する機能を追加する方法はありますか?ユーザがDevise(Rails 3.2)でログインしたときのユーザのIPアドレスを記録します。

私たちは、人々がどこからログインしているかを確認しようとしています。

おかげ

編集

工夫のユーザモデルがログインしているユーザーの現在と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アドレスと最後のIPアドレスをユーザテーブルに自動的に格納します。使用する列名はcurrent_sign_in_ip,last_sign_in_ipです。あなたが使用できるユーザーのすべてのセッションを追跡するにはhttps://github.com/shenoudab/devise_traceable

+0

これは、ユーザモデルでの:trackableシンボルの効果ですか?それはあなたがdeviseを使うときのデフォルトですが、それを削除すると、IPのロギングを停止するかどうか疑問に思います。 – jstim

+0

はい、あなたは正しいです。デベロッパのドキュメント「Trackable:サインイン数、タイムスタンプ、IPアドレスを追跡する」から –

+0

ユーザーがログインしている場所の実行履歴を作成したいと思います。このようにして、私は今日のカリフォルニア州とコロラド州から先週ログインしたユーザーを見ることができます。現在のIPはログインごとに上書きされます。 –

関連する問題