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.1.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.1-py3-none-any.whl (8.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: authsimplified-0.1.1.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.1.tar.gz
Algorithm Hash digest
SHA256 4ff464bbbe501dade6aa7d862615ffb295729c6b83d38f1f7bfcabac21df1200
MD5 783577e872684189fa55fe41e39d4656
BLAKE2b-256 8f50fa2b7018c72e1b28d7486d57dfa7d22b939abdc32beb7eea0435d9ca04a9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: authsimplified-0.1.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b0bed22f10fc504d5fea76c869e823172a7d6f6d10942f097d47240458f13c1e
MD5 f1fc5cf257251dc51e03fc8ec488b3fe
BLAKE2b-256 3c61186ba7c8e495616b990cf4cb88533b0c1aaa29d09a6c162dfd7f3c60d5e9

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