django-allauth is a reusable Django app that allows for both local and social authentication, with flows that just work. See also: https://github.com/pennersr/django-allauth