Skip to main content

Django app for user authentication

Project description

DjaoDjin-Signup

PyPI version

This repository contains a Django App for frictionless signup.

The app will register and login a user with as little as only an email address.

When the user logs out and tries to logs back in with the same email address, the app will first verify the email address through an activation url send to the registered email address. Setting the password is deferred to after the email address has been verified.

If during the first login and/or subsequent login, the email address should be verified before moving forward (ex: before presenting a payment view), you should decorate the view with an active_required decorator.

This project contains bare bone templates which are compatible with Django and Jinja2 template engines. To see djaodjin-signup in action as part of a full-fledged subscription-based session proxy, take a look at djaoapp.

Install

Add the signup urls to your urlpatterns and EmailOrUsernameModelBackend to the settings AUTHENTICATION_BACKENDS.

urls.py:

    urlpatterns = ('',
        (r'^api/', include('signup.urls.api')),
        (r'^', include('signup.urls.views')),

    )

settings.py:

    AUTHENTICATION_BACKENDS = (
        'signup.backends.auth.EmailOrUsernameModelBackend',
        'django.contrib.auth.backends.ModelBackend'

    )

To make the application useable accross a variety of websites, signup never sends any e-mails directly. It relies on triggering signals whenever a notification must be generated. As a result, to verify a user email address and activate her account, you will need to implement a listener for the user_verification signal and send the e-mail from there.

Development

After cloning the repository, create a virtualenv environment, install the prerequisites, create and load initial data into the database, then run the testsite webapp.

$ python -m venv .venv
$ source .venv/bin/activate
$ pip install -r testsite/requirements.txt
$ make vendor-assets-prerequisites
$ make initdb
$ python manage.py runserver

# Browse http://localhost:8000/

Release Notes

Tested with

  • Python: 3.7, Django: 3.2 (LTS)
  • Python: 3.10, Django: 4.2 (latest) - see #55
  • Python: 2.7, Django: 1.11 (legacy) - use testsite/requirements-legacy.txt

0.9.0

  • introduces phone verification backend
  • compatibles with Bootstrap5
  • silences bots POSTing to regsiter/.
  • fixes phonenumber.to_python may return None
  • fixes forgot password when a User is deleted but not Contact

previous release notes

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

djaodjin-signup-0.9.0.tar.gz (92.8 kB view details)

Uploaded Source

Built Distribution

djaodjin_signup-0.9.0-py3-none-any.whl (151.1 kB view details)

Uploaded Python 3

File details

Details for the file djaodjin-signup-0.9.0.tar.gz.

File metadata

  • Download URL: djaodjin-signup-0.9.0.tar.gz
  • Upload date:
  • Size: 92.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.12

File hashes

Hashes for djaodjin-signup-0.9.0.tar.gz
Algorithm Hash digest
SHA256 6bb9496231e9ccc8be9283f882bffb459c756459a3d51d3a67a33015c0d23563
MD5 c43aefef2b1a82a3ff922de83be37571
BLAKE2b-256 5602a914f18e0c1e6ab4bfa18dfc92d4a19b77391bf52cae4a8d83b60627ecd0

See more details on using hashes here.

File details

Details for the file djaodjin_signup-0.9.0-py3-none-any.whl.

File metadata

  • Download URL: djaodjin_signup-0.9.0-py3-none-any.whl
  • Upload date:
  • Size: 151.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.12

File hashes

Hashes for djaodjin_signup-0.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8738db6f78e6c161b7f46c6cf05d2c18bd1c0168a70b880dfe88bb61a7b5622f
MD5 8525dbb1aff6cb7d524ce6c1e85541b4
BLAKE2b-256 b03a5d187114f690c3c822c319b97e85d8393c684cdfaf1ec27b3b7bb23f57a2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page