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?
# 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.