跟踪所有设计登录的最佳方式是什么?
问题描述:
我目前的想法是重写会话create方法,has_many关联到user_logins模型并记录所有会话创建。虽然,我不确定如何去做。跟踪所有设计登录的最佳方式是什么?
def create
self.resource = warden.authenticate!(auth_options)
set_flash_message(:notice, :signed_in) if is_flashing_format?
sign_in(resource_name, resource)
yield resource if block_given?
respond_with resource, location: after_sign_in_path_for(resource)
end
难道我只是在滑User_Logins.create(:date => current_sign_in_at, :ip => current_sign_in_ip)
- 该sign_in(resource_name, resource)
方法被调用后,想必使当前属性已被更新。
任何想法都会很棒,谢谢。
答
设计提供了一个方法调用,您可以用在成功注册后执行一些代码。
class ApplicationController < ActionController::Base
def after_sign_in_path_for(resource)
UserLogin.create(:date => Date.today, :ip => request.remote_ip, :user_id => current_user.id)
end
end
请注意,我已经叫模式“用户登陆”,这将默认映射到表名为“ user_logins“,这是更常规的配置。
答
你想每个登录或更好的使用统计数据?会话将保持活跃,如果有人在几个小时后回来,他们可能已经登录。我建议使用真正的分析可能以js客户端(GA,mixpanel,analytics.js)的形式或添加默认的日志记录操作到application_controller.rb。如果你真的只想添加相当于会话创建的“登录”日志记录,请在session.rb回调之一中添加一个日志记录操作。
这就是定义重定向到登录后的url,而不是回调添加日志记录等。它会在技术上工作,我猜想,但相当hackish。 – errata 2015-04-03 16:21:25
这些怎么样? http://*.com/questions/10500653/an-efficient-way-to-track-user-login-dates-and-ips-history – fatfrog 2015-05-12 23:18:53