JWT-аутентификация с помощью Django Rest Framework
В этой статье мы реализуем аутентификацию с использованием JSON Web Token
JSON WEB TOKEN(JWT) - это открытый стандарт для создания токенов доступа , основанный на формате JSON. Токены создаются сервером , подписываются секретным ключом и передаются клиенту, который использует данный токен для подтверждения личности.
JWT(произноситчя как jot) состоит из трех основных частей: заголовка (header), нагрузки (payload) и подписи (signature)
Тут еще приведем шпаргалку по принципу работы JWT auth от индийского разработчика Manish Poduval
Будем использовать библиотеку django-rest-framework-simplejwt
pip install djangorestframework_simplejwt
Теперь в файле settings.py добавим:
REST_FRAMEWORK = {
...
'DEFAULT_AUTHENTICATION_CLASSES': (
...
'rest_framework_simplejwt.authentication.JWTAuthentication',
)
...
}
Далее мы можем использовать стандартные view , которая предоставляет библиотека
Либо мы можем написать нашу пользовательскую схему авторизации , которая после авторизации отправляет пользователю токены для авторизации. Эти токены желательно хранить в localstorage
Мы здесь реализуем свой метод авторизации
from rest_framework.response import Response
from rest_framework.views import APIView
from rest_framework.permissions import IsAuthenticated
class PageView(APIView):
permission_classes = (IsAuthenticated,)
def get(self, request):
return Response({
'header': 'Page header',
'body': 'Page body',
})
Заключение