Skip to main content

Auth0 Authentication Backend for Django

Project description

django-auth0-auth

Authentication backend for Django with Auth0. As of June 2025, all of the libraries that I saw for Django Auth0 target old versions of Django, we'll start this by supporting version 5+ and python 3.11+ (3.10 only has 1 year of life). Also, some of these don't actually subclass Django's AuthBackend{.verbatim} and implement a login system that is more "beside" Django than integrated with it. Because this is fully integrated, we can use Django's built-in @login_required{.verbatim} decorator and it's auth Mixins.

This project is not affiliated with Auth0.

Usage

Take a look at the sample app provided in sample/{.verbatim} to see how it's used in a MWE. There are only a few steps. First, include the app in your apps in your Django settings:

INSTALLED_APPS = [
    ...,
    "django_auth0_auth",
]

Next, include the auth settings and auth backend (also in your Django settings):

AUTH0_CLIENT_ID = os.environ.get("AUTH0_CLIENT_ID")
AUTH0_CLIENT_SECRET = os.environ.get("AUTH0_CLIENT_SECRET")
AUTH0_DOMAIN = os.environ.get("AUTH0_DOMAIN")
AUTH0_AUDIENCE = os.environ.get("AUTH0_AUDIENCE")

AUTHENTICATION_BACKENDS = [
    "django_auth0_auth.backend.Auth0Backend",
]

Finally, include the urls in your project urls.py{.verbatim}:

from django.urls import path, include

urlpatterns = [
    ...,
    path("auth0/", include("django_auth0_auth.urls")),
]

Running the sample app

First, create an auth0 application.

Set up python however you prefer, I'll use a virtual env:

~/.pyenv/versions/3.11.10/bin/python -m venv .venv
source .venv/bin/activate
pip install .

Running the sample app, we can do:

export AUTH0_CLIENT_ID=...
export AUTH0_CLIENT_SECRET=...
export AUTH0_DOMAIN=...
export AUTH0_AUDIENCE=...
python manage.py migrate
python manage.py runserver

Go to http://localhost:8000/auth0 and log in!

Next steps

  • Test that it works with the sample app (create an auth0 account to test)
  • Run through genAI to look for general improvements: is all the logic we have in the views/index the right place for this?
  • Add pre-commit code checks
  • Add automated release via github action
  • Flesh out user documentation here in README
  • Add automated tests
  • Profit

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

django_auth0_authbackend-0.0.4.tar.gz (8.7 kB view details)

Uploaded Source

Built Distribution

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

django_auth0_authbackend-0.0.4-py3-none-any.whl (2.2 kB view details)

Uploaded Python 3

File details

Details for the file django_auth0_authbackend-0.0.4.tar.gz.

File metadata

File hashes

Hashes for django_auth0_authbackend-0.0.4.tar.gz
Algorithm Hash digest
SHA256 fe0ff6a3421fd497f67eef617a3ae476b371178780672e63b7283fd4bb56c81f
MD5 f692931780c99aa00b8075b632f2820c
BLAKE2b-256 71e588153794c81f4a7e30ceca3c2687b090cf762b65f5233f3847f68cf8eba2

See more details on using hashes here.

File details

Details for the file django_auth0_authbackend-0.0.4-py3-none-any.whl.

File metadata

File hashes

Hashes for django_auth0_authbackend-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 9b2253c85678814dc27f14b357183bb1b1b8585ec52da2b8ae93bb663ca8527f
MD5 ef7c383c2de218ca7634ae342d5618b6
BLAKE2b-256 7a2a8cb35f58fbc4e0526a7f7e3a0228a98204953f48ee65b8b515a6fb5170d8

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