Skip to main content

A simplified Django authentication package with email OTP verification.

Project description

AuthSimplified

AuthSimplified is a Django authentication package designed to give you a ready-to-use OTP-based email verification and token authentication system in minutes.
It includes user registration, login, logout, OTP verification, and OTP resend without having to write the code yourself.

Features

  • User registration with OTP email verification
  • Login with Django REST Framework Token authentication
  • Logout with JWT refresh token blacklisting
  • OTP verification with expiry checks
  • Resend OTP functionality
  • Customizable SMTP email sending
  • Lightweight and easy to integrate into existing Django projects

Installation

Install via pip:

pip install authsimplified

Setup & Configuration

After installing, you need to integrate it into your Django project.

1. Add to Installed Apps

In your settings.py:

INSTALLED_APPS = [
    ...
    'rest_framework',
    'rest_framework.authtoken',
    'authsimplified',
]

2. Configure Authentication Backends

AUTH_USER_MODEL = 'authsimplified.User'

3. Configure Django REST Framework

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': [
        'rest_framework.authentication.TokenAuthentication',
    ],
}

4. Configure SMTP for Email Sending

AuthSimplified sends OTPs via email.
You need to configure SMTP settings in your settings.py:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.yourmailprovider.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = 'your_email@example.com'
EMAIL_HOST_PASSWORD = 'your_password'
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER

Using Gmail SMTP

If you want to use Gmail:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = 'yourgmail@gmail.com'
EMAIL_HOST_PASSWORD = 'your_gmail_app_password'
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER

Note: For Gmail, you need to create an App Password from your Google account settings.
Go to Google Account → Security → App passwords and generate one.

5. Include AuthSimplified URLs

In your project’s urls.py:

from django.urls import path, include

urlpatterns = [
    ...
    path('auth/', include('authsimplified.urls')),
]

6. Run Migrations

python manage.py migrate

API Endpoints

Endpoint Method Description
/auth/register/ POST Register a user and send OTP
/auth/login/ POST Login user with token authentication
/auth/logout/ POST Logout user and blacklist JWT token
/auth/verify/ POST Verify OTP and activate user
/auth/resend-otp/ POST Resend OTP to user’s email

Example Usage

Register

POST /auth/register/
Content-Type: application/json

{
  "email": "user@example.com",
  "password": "password123",
  "first_name": "John",
  "last_name": "Doe"
}

Verify OTP

POST /auth/verify/
Content-Type: application/json

{
  "otp": "123456"
}

Login

POST /auth/login/
Content-Type: application/json

{
  "email": "user@example.com",
  "password": "password123"
}

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

authsimplified-0.1.2.tar.gz (8.1 kB view details)

Uploaded Source

Built Distribution

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

authsimplified-0.1.2-py3-none-any.whl (8.3 kB view details)

Uploaded Python 3

File details

Details for the file authsimplified-0.1.2.tar.gz.

File metadata

  • Download URL: authsimplified-0.1.2.tar.gz
  • Upload date:
  • Size: 8.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for authsimplified-0.1.2.tar.gz
Algorithm Hash digest
SHA256 dcd2994fa31436883de3c25f0862513022b66a2076e0938c003d84c2eebe125a
MD5 cbc52f1b57082078f9006877b10f2a65
BLAKE2b-256 36076363754971128bc57e8b37591b2d553fa29786c05ac61924682cc22939f7

See more details on using hashes here.

File details

Details for the file authsimplified-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: authsimplified-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 8.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for authsimplified-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 10cb129d337592c6a2cb5256f6cab3a8aa2d5be40155df2379f0ada7f7c10963
MD5 a3702d879ab1cac41dae041b5ac07a62
BLAKE2b-256 2b7affa45af38b984becb1205aabb16898f3a36a182111f20d1ae0e76a7eba50

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