Installation

Dependencies

We don’t re-implement JWT or RSA in this library. Instead we rely on the widely used PyJWT and cryptography libraries as building blocks.. This library serves as a simple drop-in wrapper around those components.

Django Server

Install the library using pip.

pip install asymmetric_jwt_auth

Add asymmetric_jwt_auth to the list of INSTALLED_APPS in settings.py

INSTALLED_APPS = (
    …
    'asymmetric_jwt_auth',
    …
)

Add asymmetric_jwt_auth.middleware.JWTAuthMiddleware to the list of MIDDLEWARE_CLASSES in settings.py

MIDDLEWARE_CLASSES = (
    …
    'asymmetric_jwt_auth.middleware.JWTAuthMiddleware',
)

Create the new models in your DB.

python manage.py migrate

This creates a new relationship on the django.contrib.auth.models.User model. User now contains a one-to-many relationship to asymmetric_jwt_auth.models.PublicKey. Any number of public key’s can be added to a user using the Django Admin site.

The middleware activated above will watch for incoming requests with a JWT authorization header and will attempt to authenticate it using saved public keys.