Skip to main content

Django backends for AWS Cognito JWT

Project description

An Authentication backend for Django Rest Framework for AWS Cognito JWT tokens

Status

https://travis-ci.org/labd/django-cognito-jwt.svg?branch=master http://codecov.io/github/LabD/django-cognito-jwt/coverage.svg?branch=master https://img.shields.io/pypi/v/django-cognito-jwt.svg Documentation Status

Installation

pip install django-cognito-jwt

Usage

Add the following lines to your Django settings.py file:

COGNITO_AWS_REGION = '<aws region>' # 'eu-central-1'
COGNITO_USER_POOL = '<user pool>'   # 'eu-central-1_xYzaq'
COGNITO_AUDIENCE = '<client id>'

(Optional) If you want to cache the Cognito public keys between requests you can enable the COGNITO_PUBLIC_KEYS_CACHING_ENABLED setting (it only works if you have the Django CACHES setup to anything other than the dummy backend).

COGNITO_PUBLIC_KEYS_CACHING_ENABLED = True
COGNITO_PUBLIC_KEYS_CACHING_TIMEOUT = 60*60*24  # 24h caching, default is 300s

Also update the rest framework settings to use the correct authentication backend:

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': [
        ...
        'django_cognito_jwt.JSONWebTokenAuthentication',
        ...
    ],
    ...
 }

Be sure you are passing the ID Token JWT from Cognito as the authentication header. Using the Access Token will work for authentication only but we’re unable to use the get_or_create_for_cognito method with the Access Token.

(Optional) If you want to use a different user model then the default DJANGO_USER_MODEL you can use the COGNITO_USER_MODEL setting.

COGNITO_USER_MODEL = "myproject.AppUser"

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-cognito-jwt-0.0.3.tar.gz (4.3 kB view details)

Uploaded Source

Built Distribution

django_cognito_jwt-0.0.3-py2.py3-none-any.whl (5.6 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file django-cognito-jwt-0.0.3.tar.gz.

File metadata

  • Download URL: django-cognito-jwt-0.0.3.tar.gz
  • Upload date:
  • Size: 4.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.2

File hashes

Hashes for django-cognito-jwt-0.0.3.tar.gz
Algorithm Hash digest
SHA256 6e9dfb79b262c338a493b71f81811621f88fb0af88d4b86e896252a9c00c81bf
MD5 f0a31e4569c3292ed45cde368e7e9092
BLAKE2b-256 9327f086263b9ae5fae3ab7db14023b0d82c94ce5976735607c2324cfb374855

See more details on using hashes here.

File details

Details for the file django_cognito_jwt-0.0.3-py2.py3-none-any.whl.

File metadata

  • Download URL: django_cognito_jwt-0.0.3-py2.py3-none-any.whl
  • Upload date:
  • Size: 5.6 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.2

File hashes

Hashes for django_cognito_jwt-0.0.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 1ebc75725042bf1c6b09defef01b413c136a0897c8f3ad5433b550fa691fa8a3
MD5 2e8edd568f52d620ea36ed3c31bc396b
BLAKE2b-256 46e95870eb6ce71b40b28487f033ac05c93a8305ed8b3594136f42dcd6354149

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