8 ноября 2019 г. 23:25

220

JWT-аутентификация с помощью Django Rest Framework

В этой статье мы реализуем аутентификацию с использованием JSON Web Token

JWT(произноситчя как jot) состоит из трех основных частей: заголовка (header), нагрузки (payload) и подписи (signature)

Будем использовать библиотеку 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',
        })



Заключение

comments powered by Disqus