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

JWT是一种开放的标准,定义了一种紧凑且安全的方式,用于在各方之间传递JSON对象。JWT的Token是经过数字签名的,因此能够被验证和信任。与Session不同,JWT的Token保存在用户端,减轻了服务器的压力。
以下是使用djoser模块实现JWT认证的配置和接口使用方法的介绍:
配置
-
安装
djangorestframework_simplejwt模块:pip install djangorestframework_simplejwt -
在项目的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',),
} -
配置路由,在全局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 全栈课程」,查看后续完整讲解、案例演示和配套资料。
查看课程详情