В этой статье мы разберём как сделать JWT авторизацию на Django с помощью библиотеки simple jwt для Django.
Важно:
Также стоит сказать, что эта по сути продолжение статьи
«Django регистрация через RestAPI», там вы сделаете свою регистрацию с помощью rest-framework и кастомную модель пользователя.
Подключение компонентов:
Первым делом нужно подключить все нужные компоненты, всё это делается через эти команды.
1 2 3 | pip install djangorestframework pip install djoser pip install djangorestframework-simplejwt |
В начале мы скачиваем «rest-framework», потом библиотеку «djoser», которая используя для работу с авторизацией, также simple-jwt работает на его базе, ну и в конце скачиваем «simple jwt».
Настройка компонентов:
После того как вы всё скачали, нужно настроить, для этого заходите во файл «settings.py» и первым делом подключаем все компоненты.
1 2 3 4 5 6 | INSTALLED_APPS = [ 'djoser', 'rest_framework', 'rest_framework_simplejwt', ... ] |
Второе что стоит сделать, это настроит rest-framework для авторизации.
1 2 3 4 5 6 7 | REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': [ 'rest_framework_simplejwt.authentication.JWTAuthentication', 'rest_framework.authentication.BasicAuthentication', 'rest_framework.authentication.SessionAuthentication', ], } |
Последние это настройки DJOSER и SIMPLE_JWT.
1 2 3 4 5 6 7 8 | DJOSER = { 'ACTIVATION_URL': '#/activate/{uid}/{token}', 'SEND_ACTIVATION_EMAIL': False, } SIMPLE_JWT = { 'AUTH_HEADER_TYPES': ('JWT',) } |
На этом в целом настройка закончилась, тут в целом особо нечего говорить, последние что стоит сделать, так это подключить нужные URL.
1 2 3 4 5 6 | urlpatterns = [ ... path('api-auth', include('rest_framework.urls')), path('auth/', include('djoser.urls')), path('auth/', include('djoser.urls.jwt')), ] |
Теперь точно всё работаете так как надо, на этом настройка закончилась.
Проверка JWT:
Для проверки будем использовать программу «Postmen», которая сделана для проверки сети.
Как можете заметить по картинки, мы отправляем POST запрос с Email и паролем, в качестве ответа получаем два токина, access для подтверждения пользователя, а refresh для получения нового access.
Соответственно для подтверждения авторизации вам нужно отправлять access токен на страницу и если вам нужно получить новый, то по пути «auth/jwt/refresh/», отправляете Django jwt refresh token и получаете новый access.
В остальном тут больше не чего сказать.
Вывод:
В этой статье вы прочитаете как сделать подключить JWT авторизацию Django, с помощью библиотеки simple jwt для Django.
Также если вы не знаете что такое JWT, то посмотрите статью по это ссылке.