在我的应用程序中使用omniauth,让用户使用Google oAuth2 进行身份验证,我将用户重定向到:
/users/auth/google_oauth2
如果用户批准请求,则调用 AuthenticationsController#create。
使用 AuthenticationsController#create - 我可以添加事件跟踪来记录批准谷歌身份验证的用户数。我没有的是我发送来批准的号码,这意味着我没有转化率。
如何跟踪围绕提出连接请求点击 URL 的人数。
在我的应用程序中使用omniauth,让用户使用Google oAuth2 进行身份验证,我将用户重定向到:
/users/auth/google_oauth2
如果用户批准请求,则调用 AuthenticationsController#create。
使用 AuthenticationsController#create - 我可以添加事件跟踪来记录批准谷歌身份验证的用户数。我没有的是我发送来批准的号码,这意味着我没有转化率。
如何跟踪围绕提出连接请求点击 URL 的人数。
一个讨厌的解决方案是围绕方法 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
您可以通过使用 OmniAuth 设置阶段来实现此目的。您可以将:setup
选项传递给 OmniAuth 提供程序,并在执行身份验证之前执行一个 proc。您可以在此过程中添加事件跟踪。
所以如果你有一些跟踪器类,你可以这样做:
use OmniAuth::Builder do
provider :google_oauth2, ENV['GOOGLE_KEY'], ENV['GOOGLE_SECRET'],
:setup => lambda { |env|
Tracker.track
}
end
有关更多信息,请查看Avdi Grimm 关于该主题的精彩博文。