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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4ff464bbbe501dade6aa7d862615ffb295729c6b83d38f1f7bfcabac21df1200
|
|
| MD5 |
783577e872684189fa55fe41e39d4656
|
|
| BLAKE2b-256 |
8f50fa2b7018c72e1b28d7486d57dfa7d22b939abdc32beb7eea0435d9ca04a9
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b0bed22f10fc504d5fea76c869e823172a7d6f6d10942f097d47240458f13c1e
|
|
| MD5 |
f1fc5cf257251dc51e03fc8ec488b3fe
|
|
| BLAKE2b-256 |
3c61186ba7c8e495616b990cf4cb88533b0c1aaa29d09a6c162dfd7f3c60d5e9
|