django-registration-with-email

Override Django-registration to log in by e-mail


Keywords
django-registration-with-email
License
MIT
Install
pip install django-registration-with-email==0.3.0

Documentation

Django registration with email

https://travis-ci.org/PetrDlouhy/django-registration-with-email.svg?branch=master

Override django-registration-redux to log-in by e-mail. This package provides:

  • Log-in with e-mail or username
  • User-convenient messages for various cases in login and password reset form
  • Send password reset e-mail even for users without password
  • Includes phishing-safe next_url mechanism

Security note: For better user experience the password reset form informs users if the e-mail doesn't exist in the system. This lowers security, because attacker can query the system whether the account exists or not. The risk is lowered by using captcha on the form, but still you should evaluate if this is secure enough for your system.

Documentation

The full documentation is at https://django-registration-with-email.readthedocs.io.

Quickstart

Install Django registration with email:

pip install django-registration-redux
pip install django-registration-with-email

Add it to your INSTALLED_APPS:

INSTALLED_APPS = (
    ...
    'registration',
    'django_registration_with_email',
    'captcha',
    ...
)

Add Django registration with email's URL patterns:

urlpatterns = [
    ...
    path('accounts/', include('django_registration_with_email.urls')),
    path('accounts/', include('registration.backends.default.urls')),
    ...
]

Set email as unique=True in your User model:

class User(TimeStampedModel, AbstractUser):
   email = models.EmailField(
     verbose_name='email address',
     max_length=254,
     blank=True,
     null=True,
     unique=True,
 )

Features

  • TODO

Running Tests

Does the code actually work?

source <YOURVIRTUALENV>/bin/activate
(myenv) $ pip install tox
(myenv) $ tox

Development commands

pip install -r requirements_dev.txt
invoke -l

Credits

Tools used in rendering this package: