将策略名称存储在Warden的Rails 3日志中

时间:2012-01-26 09:18:57

标签: ruby-on-rails warden

我们使用Warden进行身份验证,我们有很多策略很难跟踪哪一个成功。而是放置像

这样的行

如果用户

,则Rails.logger.debug“使用SSO进行身份验证”

对于每个策略我都想在某个地方放一条简单的行来记录策略消息。它可以在Warden的某个地方使用,因为它存储了成功的消息:

success!(username, message)

怎么做?这条线的最佳位置是什么?

我想我需要一个回调或类似的东西:

https://github.com/hassox/warden/wiki/Callbacks

1 个答案:

答案 0 :(得分:0)

知道了:

Warden::Manager.after_authentication do |user,auth,opts|
  user = user.username if user.respond_to? :username
  message = auth.winning_strategy.message
  Rails.logger.info "User #{user} authenticated: #{auth.winning_strategy.message}"
end

在策略中:

success!(u, "with LDAP")
例如,

。这很有效。