Deviseを使用して自分のサイトの認証を処理しています。自分のアプリにログインしたときにユーザーのIPアドレスを記録する機能を追加する方法はありますか?ユーザがDevise(Rails 3.2)でログインしたときのユーザのIPアドレスを記録します。
私たちは、人々がどこからログインしているかを確認しようとしています。
おかげ
編集
工夫のユーザモデルがログインしているユーザーの現在とlast_ipを監視していることが指摘されています。すべてのログイン情報を記録したい
Deviseを使用して自分のサイトの認証を処理しています。自分のアプリにログインしたときにユーザーのIPアドレスを記録する機能を追加する方法はありますか?ユーザがDevise(Rails 3.2)でログインしたときのユーザのIPアドレスを記録します。
私たちは、人々がどこからログインしているかを確認しようとしています。
おかげ
編集
工夫のユーザモデルがログインしているユーザーの現在とlast_ipを監視していることが指摘されています。すべてのログイン情報を記録したい
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
deviseは、ユーザの現在のIPアドレスと最後のIPアドレスをユーザテーブルに自動的に格納します。使用する列名はcurrent_sign_in_ip
,last_sign_in_ip
です。あなたが使用できるユーザーのすべてのセッションを追跡するにはhttps://github.com/shenoudab/devise_traceable
これは、ユーザモデルでの:trackableシンボルの効果ですか?それはあなたがdeviseを使うときのデフォルトですが、それを削除すると、IPのロギングを停止するかどうか疑問に思います。 – jstim
はい、あなたは正しいです。デベロッパのドキュメント「Trackable:サインイン数、タイムスタンプ、IPアドレスを追跡する」から –
ユーザーがログインしている場所の実行履歴を作成したいと思います。このようにして、私は今日のカリフォルニア州とコロラド州から先週ログインしたユーザーを見ることができます。現在のIPはログインごとに上書きされます。 –