django JWT
时间: 2025-01-04 18:31:39 浏览: 9
### Django 实现 JWT 认证教程
#### 1. 准备工作
为了在 Django 中实现 JWT 认证,首先需要安装必要的包。如果使用的是 `Django REST Framework` (DRF),可以考虑使用 `djangorestframework-simplejwt` 来提供 JWT 支持。
对于不依赖 DRF 的项目,则可以选择 `django-ninja-jwt`,这是一个专为 Django-Ninja 设计的 JWT 插件[^3]。
```bash
pip install djangorestframework_simplejwt django-ninja-jwt
```
#### 2. 配置设置
编辑项目的 `settings.py` 文件来配置 JWT 设置:
- 对于 `Simple JWT`:
```python
INSTALLED_APPS = [
...
'rest_framework',
]
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework_simplejwt.authentication.JWTAuthentication',
)
}
```
- 如果选择 `Django-Ninja-JWT`:
```python
from ninja_jwt.controller import NinjaJWTController
NINJA_JWT_CONTROLLER_CLASS = NinjaJWTController
```
以上更改确保了应用程序能够识别并处理 JWT 请求[^2]。
#### 3. 创建视图函数
定义几个基本端点用于生成、刷新以及验证 token。这里给出一个简单的例子展示如何创建这些接口:
```python
from rest_framework_simplejwt.views import TokenObtainPairView, TokenRefreshView
urlpatterns = [
path('api/token/', TokenObtainPairView.as_view(), name='token_obtain_pair'),
path('api/token/refresh/', TokenRefreshView.as_view(), name='token_refresh'),
]
```
这段代码片段展示了如何通过 URL 路径映射到相应的类视图上,从而允许客户端请求访问令牌和更新令牌的服务[^4]。
#### 4. 测试 API 接口
完成上述步骤之后就可以启动开发服务器测试新添加的功能了:
```bash
python manage.py runserver
```
此时可以通过发送 POST 请求至 `/api/token/` 获取新的 access 和 refresh tokens;同样地也可以利用 `/api/token/refresh/` 刷新过期的 access token[^1]。
阅读全文