Metadata-Version: 2.4
Name: authsimplified
Version: 0.1.0
Summary: Plug-and-play Django app: JWT authentication + OTP email verification
Home-page: https://github.com/yourusername/authsimplified
Author: Jeff
Author-email: you@example.com
Classifier: Framework :: Django
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: Django>=4.2
Requires-Dist: djangorestframework>=3.14.0
Requires-Dist: djangorestframework-simplejwt>=5.3.0
Requires-Dist: pyotp>=2.9.0
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

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 the hassle of wiring everything 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"
}
