跳到主要内容

用户登录接口实现

在web开发中,HTTP协议是一种无状态的协议,这意味着每次请求都是独立的,没有关联性。为了实现用户登录功能,传统的web开发中常使用Session来存储用户登录信息,并在每次请求前验证用户是否登录。然而,对于现代的前后端分离项目,我们通常使用JWT(Json Web Token)来实现用户认证。

图36-jwt示意图

JWT是一种开放的标准,定义了一种紧凑且安全的方式,用于在各方之间传递JSON对象。JWT的Token是经过数字签名的,因此能够被验证和信任。与Session不同,JWT的Token保存在用户端,减轻了服务器的压力。

以下是使用djoser模块实现JWT认证的配置和接口使用方法的介绍:

配置​

  1. 安装djangorestframework_simplejwt模块:

    pip install djangorestframework_simplejwt
  2. 在项目的Settings配置文件中,设置REST Framework的授权方式为JWT:

    dx_movie/dx_movie/settings.py
    # DRF设置
    REST_FRAMEWORK = {
    'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',
    'PAGE_SIZE': 12,
    'DEFAULT_FILTER_BACKENDS': (
    'django_filters.rest_framework.DjangoFilterBackend',
    ),
    'DEFAULT_AUTHENTICATION_CLASSES': (
    'rest_framework_simplejwt.authentication.JWTAuthentication',
    )
    }


    SIMPLE_JWT = {
    'AUTH_HEADER_TYPES': ('JWT',),
    }
  3. 配置路由,在全局urls.py文件中,添加路由,代码如下:

dx_movie/dx_movie/urls.py
from django.contrib import admin
from django.urls import path, include
from rest_framework.routers import DefaultRouter
from movie import views


router = DefaultRouter()
router.register(r'movie', views.MovieViewSet)
router.register(r'category', views.CategoryViewSet)


urlpatterns = [
path('admin/', admin.site.urls),
path('api/', include(router.urls)),
path('api/', include('djoser.urls')),
path('api/', include('djoser.urls.jwt')),
]

JWT接口​

🔒 试读结束

继续阅读完整内容

以上为免费预览。前往「Django + Vue 全栈课程」,查看后续完整讲解、案例演示和配套资料。

查看课程详情