[devise] Logowanie błędnych prób logowania

Wszelkie próby logowania do aplikacji (udane i nieudane) mają być zapisywane w bazie danych.
W przypadku udanych prób logowania nie ma problemu bo wystarczy drobna modyfikacja device/sessions#create (a właściwie napisanie user/sessions#create). Ale w jaki sposób przechwycić błędne logowanie aby w bazie danych zapisać na jakie konto próbowano się zalogować i z jakiego IP?

Korzystam z devise-2.0.4

tak samo, akcja crate tylko ze z valid? - false i tam jakis licznik, ip masz dostepne normalnie

Nie jestem pewny, ale czy dla niezalogowanego też Ci zwróci resource ? https://github.com/plataformatec/devise/blob/master/app/controllers/devise_controller.rb#L16 ew, użyj tego https://github.com/plataformatec/devise/blob/master/app/controllers/devise_controller.rb#L32

Niestety nie tędy droga.

# POST /resource/sign_in def create resource = warden.authenticate!(auth_options) # Moja wstawka if resource # zapis do logów poprawnego logowania else # zapis błednego logowania end # koniec wstawki set_flash_message(:notice, :signed_in) if is_navigational_format? sign_in(resource_name, resource) respond_with resource, :location => after_sign_in_path_for(resource) end
W przypadku błędnego logowania aplikacja nie wraca z warden.authenticate! tylko następuje przekierowanie na sessions#new.