2

在我的应用程序中使用omniauth,让用户使用Google oAuth2 进行身份验证,我将用户重定向到:

/users/auth/google_oauth2

如果用户批准请求,则调用 AuthenticationsController#create。

使用 AuthenticationsController#create - 我可以添加事件跟踪来记录批准谷歌身份验证的用户数。我没有的是我发送来批准的号码,这意味着我没有转化率。

如何跟踪围绕提出连接请求点击 URL 的人数。

4

2 回答 2

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
于 2013-08-20T02:11:53.877 回答
0

您可以通过使用 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 关于该主题的精彩博文

于 2013-09-03T01:36:59.197 回答