2012-02-09 3 views
3

Я использую Devise для обработки моей аутентификации для моего сайта. Есть ли способ добавить функцию для записи IP-адреса пользователя при входе в мое приложение?Запись IP-адреса пользователя при входе в систему с помощью Devise (Rails 3.2)

Мы просто пытаемся увидеть, откуда поступают люди.

Благодаря

Редактировать

Было отмечено, что модель пользователя Разрабатывают часы тока и last_ip вошедшего в систему пользователя. Я хочу вести учет каждого входа.

ответ

2

Вы можете использовать крюки Warden внутри 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

Это эффект отслеживаемого символа в пользовательской модели? Это значение по умолчанию, когда вы используете devise, но если вы его удалите, мне интересно, перестанет ли он регистрировать IP-адреса ... – jstim

+0

Да, вы правы. Из разрабатываемой документации «Отслеживание: отслеживание количества входных данных, временных меток и IP-адреса». –

+0

Я хочу создать текущую историю регистрации пользователя. Таким образом, я могу сказать, что пользователь вошел в систему из Калифорнии сегодня и Колорадо на прошлой неделе. CurrentIP перезаписывается при каждом входе в систему, верно? –

Смежные вопросы