DjangoRestFramework中的simplejwt使用

文章目录

    • 说明
    • 1. 安装simple模块
    • 2. 配置`settings.py`
    • 3. 配置`urls.py`
    • 4. 测试

说明

实验环境如下

  • Python v3.6.6
  • Django v3.2.4
  • djangorestframework v3.12.4
  • djangorestframework-simplejwt v4.4.0

1. 安装simple模块

方式1
直接以 pip 方式安装

E:\SweetYaya\MyProj01> pip install djangorestframework-simplejwt

方式2
从 Github 上下载源码包安装

  • https://github.com/jazzband/djangorestframework-simplejwt/

找到相应版本下载到本地解压

E:\SweetYaya> cd djangorestframework-simplejwt-4.6.0

E:\SweetYaya\djangorestframework-simplejwt-4.6.0> python setup.py install

2. 配置settings.py

REST_FRAMEWORK = {
    'DEFAULT_PERMISSION_CLASSES': [
        'rest_framework.permissions.IsAuthenticated',
    ],
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework.authentication.BasicAuthentication',
        'rest_framework.authentication.SessionAuthentication',
        # Add by sweetyaya
        'rest_framework_simplejwt.authentication.JWTAuthentication',
    )
}

3. 配置urls.py

from rest_framework_simplejwt.views import TokenObtainPairView, TokenRefreshView, TokenVerifyView

urlpatterns = [
    path('', include(router.urls)),
    path('api-auth/', include('rest_framework.urls', namespace='rest_framework')),
    # Add by sweetyaya
    path("api/token/", TokenObtainPairView.as_view(), name="token_obtain_pair"),
    path("api/token/refresh/", TokenRefreshView.as_view(), name="token_refresh"),
    path("api/token/verify/", TokenVerifyView.as_view(), name="token_verify")
]

4. 测试

执行运行命令

E:\SweetYaya\MyProj01> python manage.py runserver

获取Token

打开 Postman 工具,设置如下

  • 选择 post 方式
  • 填写请求地址:http://127.0.0.1:8000/api/token/
  • 添加头信息 Content-Type: application/json
    DjangoRestFramework中的simplejwt使用_第1张图片
    发送请求后得到如下结果

DjangoRestFramework中的simplejwt使用_第2张图片

使用Token

设置如下

  • 选择 get 方式
  • 填写请求地址:http://127.0.0.1:8000/users/
  • 在授权设置栏目下设置 TypeBearer Token
  • 然后设置其值为上面请求到的 access
    DjangoRestFramework中的simplejwt使用_第3张图片

得到结果如下

DjangoRestFramework中的simplejwt使用_第4张图片

.
.
.
.
.
.
桃花仙人种桃树,又摘桃花换酒钱_

你可能感兴趣的:(Python编程,#,Django,django,drf,jwt,simplejwt)