Skip to main content

Internal authentication package using Django Allauth, DRF and SimpleJWT

Project description

Bunifu Django Auth

A standardized authentication framework for Django projects built on:

  • Django
  • Django Allauth
  • Django REST Framework
  • SimpleJWT

Designed for internal organizational consistency and centralized user model management.


Features

  • Email-based authentication
  • JWT access & refresh tokens
  • Token rotation & blacklisting
  • DRF-ready endpoints
  • Automatic safe default configuration
  • Pluggable and override-friendly
  • Production-ready test suite (pytest + factoryboy)

Installation

TestPypi Repository

using uv or pip

uv add bunifu-django-auth
---------------------
pip install bunifu-django-auth 

Quick Start

Add to Installed Apps

INSTALLED_APPS = [
    "allauth",
    "allauth.account",
    "rest_framework",
    "rest_framework_simplejwt",
    "rest_framework_simplejwt.token_blacklist",
    "bunifu_django_auth",
]

Register auth user model

AUTH_USER_MODEL="bunifu_django_auth.BunifuUser"

Include URLs

from django.urls import path, include

urlpatterns = [
    path("auth/", include("bunifu_django_auth.urls")),
    # add allauth urls for the allauth paths
    path("accounts/", include("allauth.urls")),
]

Migrate the tables

python manage.py migrate

Include the JWTAuthorization

REST_FRAMEWORK = {
    "DEFAULT_AUTHENTICATION_CLASSES": (
        "rest_framework_simplejwt.authentication.JWTAuthentication",
    )
}

Ensure the allauth middleware is added as below

MIDDLEWARE = [
    ...
    # add this
    "allauth.account.middleware.AccountMiddleware"
]

That’s it.

No additional configuration required.


Available Endpoints

Endpoint Method Description
/auth/register/ POST Register new user
/auth/login/ POST Obtain JWT access & refresh tokens
/auth/refresh/ POST Refresh access token
/auth/logout/ POST Blacklist refresh token

Default Configuration

The package automatically applies safe defaults:

  • Email authentication
  • JWT token rotation
  • 15-minute access tokens
  • 7-day refresh tokens
  • Refresh token blacklisting
  • DRF JWT authentication backend

All settings can be overridden in the host project.

Example:

SIMPLE_JWT = {
    "ACCESS_TOKEN_LIFETIME": timedelta(minutes=5),
}

Overriding Serializers

You may override serializers if needed:

BUNIFU_REGISTER_SERIALIZER = "yourapp.serializers.CustomRegisterSerializer"

Running Tests

pytest

With coverage:

pytest --cov=bunifu_django_auth

License

MIT License © 2026 Bunifu

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

bunifu_django_auth-0.2.8.tar.gz (10.7 kB view details)

Uploaded Source

Built Distribution

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

bunifu_django_auth-0.2.8-py3-none-any.whl (15.4 kB view details)

Uploaded Python 3

File details

Details for the file bunifu_django_auth-0.2.8.tar.gz.

File metadata

  • Download URL: bunifu_django_auth-0.2.8.tar.gz
  • Upload date:
  • Size: 10.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for bunifu_django_auth-0.2.8.tar.gz
Algorithm Hash digest
SHA256 aa5ffc427bbe1d74be93cca50802b7dbbf2f643739ad55972655b5a1cd54a84b
MD5 fab9dbe9c0b79180a45879526e47ee25
BLAKE2b-256 dbbb2913cda39252b4424d1a5ce3c4ac19d19987f31ff4a2c9384d0301b1e551

See more details on using hashes here.

File details

Details for the file bunifu_django_auth-0.2.8-py3-none-any.whl.

File metadata

File hashes

Hashes for bunifu_django_auth-0.2.8-py3-none-any.whl
Algorithm Hash digest
SHA256 0b7a5cde3e773c21d269887a3938f3d70915a8b61eeb88c57cfd9ca3f0b9afd5
MD5 a34504f732ff4df0716686ce62f9eb72
BLAKE2b-256 2b8b1fee2f8e70c77a497ba98e2a1404493f5a2ddf6e9b44768eaeaf0fc64f28

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