在 Django Rest Framework (DRF) 中使用 JWT (JSON Web Token) 进行认证时,前后端需要配合工作。下面是 DRF 使用 JWT 认证的一个基本流程。
后端部分
-
安装必要的库:
需要安装djangorestframework
和djangorestframework-simplejwt
两个库。后者是处理 JWT 的工具。pip install djangorestframework djangorestframework-simplejwt
-
配置 Django 项目:
在settings.py
文件中,添加 JWT 相关的配置。INSTALLED_APPS = [ # 其他应用 'rest_framework', 'rest_framework_simplejwt', ] REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': ( 'rest_framework_simplejwt.authentication.JWTAuthentication', ), } # 可选:JWT 配置 from datetime import timedelta SIMPLE_JWT = { 'ACCESS_TOKEN_LIFETIME': timedelta(minutes=5), 'REFRESH_TOKEN_LIFETIME': timedelta(days=1), 'ROTATE_REFRESH_TOKENS': True, 'BLACKLIST_AFTER_ROTATION': True, }
-
创建获取 JWT Token 的视图:
你可以使用SimpleJWT
提供的现成的视图来生成 token 和刷新 token。在
urls.py
中配置 JWT 相关的路由:from django.urls import path from rest_framework_simplejwt.views import ( TokenObtainPairView, TokenRefreshView, ) urlpatterns = [ # 获取 JWT Token path