Skip to main content

An authentication token for djangorestframework that has an expiration date.

Project description

A new authentication backend for Django REST framework that uses a token with an expiration date. A new token is created every time a user logs in. The token expiration date is refreshed every time the token is used. It supports custom user models

How To Use

Add to your installed apps

INSTALLED_APPS = (
    ...
    'timed_auth_token',
)

Add the authentication class to the default authentication classes

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework.authentication.BasicAuthentication',
        'rest_framework.authentication.SessionAuthentication',
        'timed_auth_token.authentication.TimedAuthTokenAuthentication',
    )
}

The app comes with a login URL at /login. The endpoint expects two parameters: username and password.

url_patterns = [
    ...
    # Can login by using /auth/login
    url(r'^auth/', include('timed_auth_token.urls', namespace='auth')),
]

After a successful login the response contains one key: token.

{'token': 'lkjalsdjf8asdkjfal;kdfa8s;dlna;sdf'}

To use this token to authenticate it must be included in the HTTP headers:

Authorization: Token YOURTOKEN

Configuration

The only available configuration option is the duration of the token. It defaults to 30 days. You can set it either on the user model as an attribute or as a setting in your settings.py. If they are both set, the user model will take precedence.

  1. Put it on your user model as an attribute

    from datetime import timedelta
    from django.contrib.auth.models import User
    
    class MyUserModel(User):
        token_validity_duration = timedelta(days=60)
  2. Put it in your settings.py

    from datetime import timedelta
    
    TIMED_AUTH_TOKEN = {
        'DEFAULT_VALIDITY_DURATION': timedelta(days=45)
    }

Credits

Starting code (model, auth backend) thanks to Jake from jh.gg.

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

File details

Details for the file djangorestframework-timed-auth-token-1.3.0.tar.gz.

File metadata

File hashes

Hashes for djangorestframework-timed-auth-token-1.3.0.tar.gz
Algorithm Hash digest
SHA256 31a0c2757ef8dc3bf1ff50adeaa78a4ceffeb46d743ae0d611b69c487362c565
MD5 40b27eff315a09670ad9e907d4b07940
BLAKE2b-256 55a447df474254187ba22e48f3598e569354e002d8a4a1488d191cc4df3742ed

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