我通过电子邮件发送的OmniAuth的球队,他们在下面给我的解决方案(太感谢你了!):
您可以通过添加ON_FAILURE动作进行自定义失败处理。
OmniAuth.config.on_failure = Proc.new {| env | #do东西}
https://github.com/intridea/omniauth/blob/master/lib/omniauth/failure_endpoint.rb 是默认的故障端点作为一个例子
所以我加入配置以下/初始化/ omniauth.rb:
OmniAuth.config.on_failure = Proc.new{|env|
myLog = ActiveSupport::TaggedLogging.new(Logger.new("log/omniauth_log.txt"))
myLog.tagged("OmniAuth", "ENV") { myLog.info "Failed login attempt - username: #{env["rack.request.form_hash"]["username"]}, password: #{env["rack.request.form_hash"]["password"]} "}
OmniAuth::FailureEndpoint.new(env).redirect_to_failure}
......它正确记录用户名和密码。剩下要做的就是加密密码。
如果要显示正在进行的所有操作,可以记录#{env.inspect}本身。这是一个非常大的散列(虽然也包含较小的散列),所以也许只需记录一次{env.inspect}并选择与任务相关的字段。
您是否使用omniauth进行身份验证,或将它与Devise/authlogic等其他引擎结合使用? – 2014-12-02 21:34:09
我认为我们自己使用OmniAuth。我在Gemfile或“外部库”中看不到任何与之相对应的宝石。 – NewbieOnRails 2014-12-02 22:19:38