Hooking into django's authentication system using two approaches: a custom authentication_backend and signals.