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

08 Ноя 2019 , 1705

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

JSON WEB TOKEN(JWT) - это открытый стандарт для создания токенов доступа , основанный на формате JSON. Токены создаются сервером , подписываются секретным ключом и передаются клиенту, который использует данный токен для подтверждения личности.

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

JWT-аутентификация в Django

Тут еще приведем шпаргалку по принципу работы JWT auth от индийского разработчика Manish Poduval

JWT аутентификация

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

Подписка

Подпишитесь на наш список рассылки, чтобы получать обновления из блога

Рубрики

Теги