Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ahmetkotan/tokenauth

Django Simple Token Authentication with Expiration Time and Prefix
https://github.com/ahmetkotan/tokenauth

django expire refresh rest token

Last synced: 7 days ago
JSON representation

Django Simple Token Authentication with Expiration Time and Prefix

Awesome Lists containing this project

README

        

=====================================================================
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'^/', 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": "", "password":""}' //tokens/

Refresh token:
::
curl -X PUT -H "Content-Type: application/json" -d '{"key": ""}' //tokens/

Deleted token and logout:
::
curl -X DELETE -H "Content-Type: application/json" -H "Authorization: " //tokens/