With the advent of social media platforms things changed. Users do not want to create a new account on each and every site anymore. More and more accounts are created by connecting to Twitter, Facebook, Google, Github or whatever suits the needs of website owners. Supporting email-based registration is still important of course, but can be implemented by a much smaller app.
Django supports cryptographic signing now, which makes it much easier to provide some data to a user and check whether we get it back unmodified. We do not need to store emails and verification codes in the database if we only want to confirm email addresses for account creation. Instead, we simply craft a special link containing the email address and a cryptographic signature signed with Django’s
That’s what django-email-registration does. It can either be used as an alternative step to social authentication, and also to confirm email adresses for already existing users.