在我的应用中使用omniauth,让用户使用Google oAuth2进行身份验证我将用户重定向到:
/users/auth/google_oauth2
如果用户批准了请求,则调用AuthenticationsController #create。
使用AuthenticationsController #create - 我可以添加事件跟踪来记录批准google身份验证的用户数量。我没有的是我发送批准的数字意味着我没有转换率。
如何跟踪发出连接请求的网址的人数。
答案 0 :(得分:0)
一个讨厌的解决方案是围绕方法Strategy#request_call构建一个过滤器并在那里进行跟踪。
在初始化程序中:
OmniAuth::Strategy.class_eval do
def request_call_with_tracking
log :info, "Im running before the actual request_call"
Tracker.hit(name) #name will return the provider
request_call_without_tracking
end
alias_method_chain :request_call, :tracking
end
答案 1 :(得分:0)
您可以使用OmniAuth设置阶段来实现此目的。您可以将:setup
选项传递给OmniAuth提供程序,并在执行身份验证之前执行proc。您可以在此过程中添加事件跟踪。
因此,如果你有一些跟踪器类,你可以这样做:
use OmniAuth::Builder do
provider :google_oauth2, ENV['GOOGLE_KEY'], ENV['GOOGLE_SECRET'],
:setup => lambda { |env|
Tracker.track
}
end