Skip to main content

Descope plugin for Django

Project description

Descope Django App

Descope is a user management and authentication platform. This plugin integrates Descope with your Django app.

Quick start

  1. Sign up for Descope and set admin roles
  • Get your project id
  • Create two roles in Descope, that will be mapped to Django permissions
    • is_staff
    • is_superuser

Map these roles to any user you would like to make a staff or superuser in your Django app. The names of these roles can be customized in the settings below.

  1. Install "django-descope" and add to your INSTALLED_APPS setting like this:
poetry add django-descope
OR
pip install django-descope
   INSTALLED_APPS = [
   ...
   'django_descope',
   ]
  1. Add Descope Middleware after the AuthenticationMiddleware and SessionMiddleware
   MIDDLEWARE = [
   ...
   'django.contrib.sessions.middleware.SessionMiddleware',
   'django.contrib.auth.middleware.AuthenticationMiddleware',
   ...
   'django_descope.middleware.DescopeMiddleware',
   ]
  1. Include descope URLconf in your project urls.py like this:
   path('auth/', include('django_descope.urls')),
  1. In your site templates, insert the descope_flow tag where you want to place your flow
{% load descope %}
<!-- load the descope registry -->

{% if user.is_authenticated %}
<h1>Welcome {{ user.email }} you are logged in!</h1>
<p><a href="{% url 'logout' %}">Log Out</a></p>
{% else %} {% descope_flow "sign-up-or-in" "/" %}
<!-- provide the descope flow id, and where to redirect after a successful login-->
{% endif %}
  1. Start the development server and visit the newly created view

Testing

See test_admin.py for a rudimentary example of how to utilize Descope Test Users when testing your application with authenticated users. You can use the helper django_descope.authentication.add_tokens_to_request to add the tokens to the django session

[!IMPORTANT] Remember you must create the relevant roles in Descope Console so you can utilize them in your testing.

Settings

The following settings are available to configure in your project settings.py

Required

DESCOPE_PROJECT_ID

Optional

DESCOPE_MANAGEMENT_KEY
DESCOPE_IS_STAFF_ROLE
DESCOPE_IS_SUPERUSER_ROLE

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_descope-1.4.0.tar.gz (8.4 kB view details)

Uploaded Source

Built Distribution

django_descope-1.4.0-py3-none-any.whl (12.7 kB view details)

Uploaded Python 3

File details

Details for the file django_descope-1.4.0.tar.gz.

File metadata

  • Download URL: django_descope-1.4.0.tar.gz
  • Upload date:
  • Size: 8.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.10.12 Linux/6.5.0-1025-azure

File hashes

Hashes for django_descope-1.4.0.tar.gz
Algorithm Hash digest
SHA256 69f00daa261e83e3c4141c41e3d6552e46c60450521069a58a0b076d30a55781
MD5 52704cda78586109169a4c6b5732cf67
BLAKE2b-256 d0de56856308614092c87f61d97a01558cd08a6be9a4187b629add0216144416

See more details on using hashes here.

File details

Details for the file django_descope-1.4.0-py3-none-any.whl.

File metadata

  • Download URL: django_descope-1.4.0-py3-none-any.whl
  • Upload date:
  • Size: 12.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.10.12 Linux/6.5.0-1025-azure

File hashes

Hashes for django_descope-1.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 780f86af628c4d2f43ca2146b382dcd624caadaa74b982a4fde933d04524350b
MD5 9c4b3a272da53bb1dcee8b8a4b4a8390
BLAKE2b-256 7e861c0514213edd13d951d26bdd033a5fd6ffee2eca8cd170fed1deebbd1ac4

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page