django-rest-auth-bearer

Bearer auth for DRF.


License
MIT
Install
pip install django-rest-auth-bearer==0.1.1

Documentation

Django rest Bearer Auth

Must have installed rest_framework, then install bearer-auth via pip and add it to settings.py

pip install django-rest-auth-bearer
INSTALLED_APPS: [
  ...,
  'rest_framework',
  'bearer_auth',
]

Add custom authentication to BearerTokenAuth

    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework.authentication.SessionAuthentication',
        'bearer_auth.authentication.BearerTokenAuth',
    ),

Add TOKEN_EXPIRES_IN timespan to settings.py

TOKEN_EXPIRES_IN = 2  #2hours

Customize urls.py

from bearer_auth.views import ObtainToken

...
path('auth/token', ObtainToken.as_view()),

From frontend side, send request as following for acquire token

"username": "username",
"password": "password123",
"grant_type": "password"  //must be password

As for response:

{
  "token_type":"Bearer",
  "access_token":"c2fbea30732f113bbf879e51b2e49544d2de2d10"
  "refresh_token":"8ab39baa8f29041a891767a9323500073c9ee8e89e944af759",
  "expires_in":1
}

Moreover to refresh current token, send refresh_token value with grant_type refresh_token to same endpoint

{
  "refresh_token":"8ab39baa8f29041a891767a9323500073c9ee8e89e944af759",
  "grant_type": "refresh_token"
}