Skip to main content

Advanced authentication with OTP and phone number verification

Project description

Moses

Moses is the Django app that provides OTP authentication and phone number email verification by 6-digit verification codes.

Quick start

  1. Add "moses" to your INSTALLED_APPS setting like this::
    INSTALLED_APPS = [
        ...
        'moses',
        'django.contrib.admin',
        ...
    ]
  1. Set moses's CustomUser model as AUTH_USER_MODEL::
    AUTH_USER_MODEL = 'moses.CustomUser'
  1. Allow OTP header in django-cors-headers config::
    CORS_ALLOW_HEADERS = (
        *default_headers,
        "otp",
   )
  1. Add MFAModelBackend as Authentication backend to process OTP on authentication::
    AUTHENTICATION_BACKENDS = [
        'moses.authentication.MFAModelBackend',
        ...
    ]
  1. Add JWTAuthentication to REST_FRAMEWORK's DEFAULT_AUTHENTICATION_CLASSES::
    REST_FRAMEWORK = {
        ...
        'DEFAULT_AUTHENTICATION_CLASSES': [
            'moses.authentication.JWTAuthentication',
        ]
    }
  1. Specify Moses's serializers for Djoser::
    MOSES = {
        "DEFAULT_LANGUAGE": 'en',
        "SEND_SMS_HANDLER": "project.common.sms.send",
        "SENDER_EMAIL": "noreply@example.com",
        "PHONE_NUMBER_VALIDATOR": "project.common.sms.validate_phone_number",
        "DOMAIN": DOMAIN,
        "URL_PREFIX": "http://localhost:8000", # without trailing slash
        "IP_HEADER": "HTTP_CF_CONNECTING_IP" if DEBUG else None,
        "LANGUAGE_CHOICES": (
            ('en', _("English")),
        ),
    }
  1. Add to your root urls.py::
    from moses.admin import OTPAdminAuthenticationForm

    admin.site.site_header = _('Admin Panel')
    admin.site.index_title = 'Welcome'
    admin.site.login_form = OTPAdminAuthenticationForm
  1. Run python manage.py migrate to create the accounts models.

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

django_moses-0.12.3.tar.gz (19.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_moses-0.12.3-py3-none-any.whl (27.7 kB view details)

Uploaded Python 3

File details

Details for the file django_moses-0.12.3.tar.gz.

File metadata

  • Download URL: django_moses-0.12.3.tar.gz
  • Upload date:
  • Size: 19.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.1 CPython/3.13.4 Darwin/24.5.0

File hashes

Hashes for django_moses-0.12.3.tar.gz
Algorithm Hash digest
SHA256 f03fa8b0c27e5fa80e0a80386437df82ea6370ecd543b57cab12287cb9f3400e
MD5 25715ef55f0a20b13011a2a72efeb3ad
BLAKE2b-256 443776d7bbd1f679a6e54055971c9c3c86e871ed42856544b02c6d33fdc383f4

See more details on using hashes here.

File details

Details for the file django_moses-0.12.3-py3-none-any.whl.

File metadata

  • Download URL: django_moses-0.12.3-py3-none-any.whl
  • Upload date:
  • Size: 27.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.1 CPython/3.13.4 Darwin/24.5.0

File hashes

Hashes for django_moses-0.12.3-py3-none-any.whl
Algorithm Hash digest
SHA256 b0ec505a9a1954e0a2be7b11854ff0f7e7ebcf827ae9277fe4e86c0abd8278b8
MD5 5fa940e81b55bd4bcef9807d50144516
BLAKE2b-256 9f71606568378ec301f482d260d19a37de21bd3f0f3f2cba7e682520dbe42403

See more details on using hashes here.

Supported by

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