我通過電子郵件發送的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