Skip to content

Django Simple Token Authentication with Expiration Time and Prefix

Notifications You must be signed in to change notification settings

ahmetkotan/tokenauth

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tokenauth

Tokenauth developed for django rest token authentication. It enables you to define expiration time and token prefix. Tokens generate with random data and it use SHA-256 algorithm.

Installation

on Pypi

pip install tokenauth

on Github

git clone [email protected]:ahmetkotan/tokenauth.git
cd tokenauth
python setup.py install

Settings

Added to INSTALLED_APPS.

INSTALLED_APPS = [
    ...
    'tokenauth',
    ...
]

Added to urls.py.

urlpatterns = [
    ...
    url(r'^<your-login-url>/', include('tokenauth.urls')),
    ...

]

Definition in settings.py

TOKEN_EXPIRATION_TIME = 60 * 60 * 24 * 3 # Default 3 days
TOKEN_PREFIX = "Bearer"
TOKEN_REFRESH = True

Usage

Definition in settings.py

# Rest Framework
REST_FRAMEWORK = {
    ...
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'tokenauth.auth.TokenAuthentication',
    ),
    ...
}

Or in views.py

from tokenauth.auth import TokenAuthentication
class SimpleView(ModelViewset):
    authentication_classes = (TokenAuthentication, )

Created token and login:

curl -X POST -H "Content-Type: application/json" -d '{"username": "<username>", "password":"<password>"}' <your-django-url>/<your-login-url>/tokens/

Refresh token:

curl -X PUT -H "Content-Type: application/json" -d '{"key": "<your-valid-token>"}' <your-django-url>/<your-login-url>/tokens/

Deleted token and logout:

curl -X DELETE -H "Content-Type: application/json" -H "Authorization: <your-token>" <your-django-url>/<your-login-url>/tokens/

About

Django Simple Token Authentication with Expiration Time and Prefix

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages