我们将通过使用 django rest 框架提供一个 django jwt 身份验证示例来帮助您。您可以查看 django jwt 身份验证的示例。只需要几个简单的步骤就可以在Django rest框架中完成JWT认证。
JSON 对象可用于利用称为 JSON Web 令牌的开放标准在各方之间安全地传输数据。JWT 用于用户和提供者的无状态身份验证程序,这意味着会话在客户端维护,而不是存储在服务器上。在这里,我们将使用 Django 来实现 JWT 认证机制。
第 1 步:创建项目
在这一步中,我们将使用 django-admin 创建一个新的 django 项目。返回命令行界面并运行以下命令:
django-admin startproject example
第 2 步:创建应用
现在我们将创建一个名为core的应用程序来存储帖子名称列表。我们故意保持基本的东西。使用Control+c停止本地服务器并使用startapp命令创建这个新应用程序。
python manage.py startapp core
第 3 步:安装所需的库
首先让我们安装 django 和 djangorestframework_simplejwt,它们是必需的 Python 库。
pip install django pip install djangorestframework_simplejwt
第 4 步:更新 setting.py
在这一步中,我们需要在 settings.py 文件中做两件事,一是我们安装的应用程序名称将以下行添加到您的 settings.py 文件中:
接下来需要在settings.py文件中添加如下: example/settings.py
.... INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'rest_framework', 'core', ] REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': [ 'rest_framework_simplejwt.authentication.JWTAuthentication', ], }
第 5 步:创建视图
在这一步中,我们需要创建视图来执行对数据库的获取记录。打开 core/views.py 文件并添加:
core/views.py
from rest_framework.views import APIView from rest_framework.response import Response from rest_framework.permissions import IsAuthenticated class HelloView(APIView): permission_classes = (IsAuthenticated, ) def get(self, request): content = {'message': 'Welcome to Tuts-Station.com'} return Response(content)
第 6 步:创建 URL
在本节中,我们需要 apis 应用程序中的 urls.py 文件,但是 Django 不会使用 startapp 命令为我们创建一个文件。使用文本编辑器创建core/urls.py并粘贴下面的代码。 core/urls.py
from django.urls import path from . import views urlpatterns = [ path('hello/', views.HelloView.as_view(), name ='hello'), ]
接下来,我们将要求修改 urls.py 您的根 preoject 文件夹让更新文件。
example/urls.py
from django.urls import path, include from rest_framework_simplejwt import views as jwt_views urlpatterns = [ path('api/token/', jwt_views.TokenObtainPairView.as_view(), name ='token_obtain_pair'), path('api/token/refresh/', jwt_views.TokenRefreshView.as_view(), name ='token_refresh'), path('', include('app.urls')), ]
运行服务器
在此步骤中,我们将运行本地开发服务器来使用我们的应用程序,而无需将其部署到 Web。
python manage.py runserver
JWT 只是一个授权令牌,应该包含在所有请求中:
curl http://127.0.0.1:8000/hello/ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNjY5MjEwMzg4LCJqdGkiOiI2MjY2N2RkOWIyZmE0N2M4OWRmNjU0ZTVlZGYwYmNjNCIsInVzZXJfaWQiOjF9.Osp5gtBadiAoRi8_0ed2os2oQLWkPyHU34gjlbS2UC0'
通过将用户名和密码交换为访问令牌和刷新令牌,可以获得 JWT。
Postman POST请求:

Postman GET请求:

我希望它能帮助你……