Skip to main content

drf-temptoken

DRF temporary authentication token

Installation

pip install drf-temptoken

Usage

Include drf_temptoken in INSTALLED_APPS

INSTALLED_APPS = [
    ...,
    'drf_temptoken'
]

Add drf_temptoken.auth.TempTokenAuthentication into your authentication classes

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'drf_temptoken.auth.TempTokenAuthentication',
    )
}

Create token for user

from django.contrib.auth import get_user_model
from drf_temptoken.utils import create_token, get_user_tokens

User = get_user_model()

user = User.objects.first()

token = create_token(user)

# Sets token's expiration date to current
token = token.expire()

key = token.key # Used in authentication process

tokens = get_user_tokens(user) # Returns a queryset of TempTokens belonging to the user

Default settings (can be overriden in Django's settings)

TMP_TOKEN_HEADER_PREFIX = 'TMP'

TMP_TOKEN_AUTH_HEADER = 'Authorization'

# Set any value in order to get the token from query
TMP_TOKEN_QUERY_PARAM = None



# Python's timedelta kwargs passed in order to set token's expiration date
TMP_TOKEN_TIME_DELTA_KWARGS = {
    'days': 7 # Token will be expired in 7 days by default
}

Auth backend will check for HTTP_AUTHORIZATION: TMP {token} by default

Assuming your token (token.key) is equal to "123", your request should look like this:

import requests

headers = {
    'Authorization': 'TMP 123'
}

response = requests.get(url, headers=headers)

Or like this if you set query param to _api_key:

import requests

url = 'https://example.com?_api_key=123'

response = requests.get(url)

Metadata

Release files for drf-temptoken 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for drf-temptoken 0.1.2
File Size Uploaded
drf-temptoken-0.1.2.tar.gz 6.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for drf-temptoken 0.1.2
File Interpreter ABI Platform
drf_temptoken-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 15.4 kB

Release files / drf-temptoken-0.1.2.tar.gz

Download URL drf-temptoken-0.1.2.tar.gz
Size 6.7 kB
Tags Source
SHA-256 checksum
How to use checksums
5caccd465583b8ba19b708c6263585aea18119dbb31b86e4501b7c75feb631f7
BLAKE2b-256 checksum
How to use checksums
b852cabb4e56d8bfe1e64296d50ce0b71db25b355e6fa6b3e24d897bf5cfa83b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.10.4

Release files / drf_temptoken-0.1.2-py3-none-any.whl

Download URL drf_temptoken-0.1.2-py3-none-any.whl
Size 8.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
51a8f8a5d32723125308ddf1713b206eb8f12827efb93f57b6dff0662608c709
BLAKE2b-256 checksum
How to use checksums
2177d177cd36971480c9c300a50190d41b35fb9dc9ae3ccc0e64209174efd4b3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.10.4

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page