跟踪所有设计登录的最佳方式是什么?

问题描述:

我目前的想法是重写会话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“,这是更常规的配置。

+0

这就是定义重定向到登录后的url,而不是回调添加日志记录等。它会在技术上工作,我猜想,但相当hackish。 – errata 2015-04-03 16:21:25

+0

这些怎么样? http://*.com/questions/10500653/an-efficient-way-to-track-user-login-dates-and-ips-history – fatfrog 2015-05-12 23:18:53

你想每个登录或更好的使用统计数据?会话将保持活跃,如果有人在几个小时后回来,他们可能已经登录。我建议使用真正的分析可能以js客户端(GA,mixpanel,analytics.js)的形式或添加默认的日志记录操作到application_controller.rb。如果你真的只想添加相当于会话创建的“登录”日志记录,请在session.rb回调之一中添加一个日志记录操作。