Django REST Framework SimpleJWT 使用教程
djangorestframework-simplejwt 项目地址: https://gitcode.com/gh_mirrors/dja/djangorestframework-simplejwt
1. 项目介绍
Django REST Framework SimpleJWT 是一个为 Django REST Framework 提供的 JSON Web Token 认证插件。它允许开发者在 Django 应用中轻松实现基于令牌的认证机制。SimpleJWT 提供了生成、解析和验证 JWT 令牌的功能,同时支持多种令牌刷新和黑名单策略。
2. 项目快速启动
要开始使用 Django REST Framework SimpleJWT,请按照以下步骤操作:
首先,确保你已经安装了 Django 和 Django REST Framework。接下来,通过 pip 安装 SimpleJWT:
pip install djangorestframework-simplejwt
然后,在你的 Django 项目的 settings.py
文件中,添加 rest_framework_simplejwt
到 INSTALLED_APPS
:
INSTALLED_APPS = [
# ...
'rest_framework',
'rest_framework_simplejwt',
# ...
]
接下来,配置 JWT 认证后端:
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework_simplejwt.authentication.JWTAuthentication',
),
# ...
}
现在,你需要添加 JWT 认证相关的配置到 settings.py
,例如:
from datetime import timedelta
SIMPLE_JWT = {
'ACCESS_TOKEN_LIFETIME': timedelta(minutes=30),
'REFRESH_TOKEN_LIFETIME': timedelta(days=1),
'ROTATE_REFRESH_TOKENS': False,
'BLACKLIST_AFTER_ROTATION': True,
'ALGORITHM': 'HS256',
'SIGNING_KEY': 'your-secrer-key',
'VERIFYING_KEY': None,
'AUDIENCE': None,
'ISSUER': None,
'AUTH_HEADER_TYPES': ('Bearer',),
'AUTH_HEADER_NAME': 'Authorization',
'USER_ID_FIELD': 'id',
'USER_ID_CLAIM': 'user_id',
'AUTH_TOKEN_CLASSES': ('rest_framework_simplejwt.tokens.AccessToken',),
'TOKEN_TYPE_CLAIM': 'token_type',
'JTI_CLAIM': 'jti',
'SLIDING_TOKEN_REFRESHers': (
'rest_framework_simplejwt.tokens.RefreshToken',
),
'SLIDING_TOKEN_LIFETIME': timedelta(minutes=5),
}
确保替换 'your-secrer-key'
为你的实际密钥。
现在,你可以运行你的 Django 项目的迁移命令来创建相关表:
python manage.py migrate
最后,启动你的开发服务器:
python manage.py runserver
3. 应用案例和最佳实践
在实现 JWT 认证时,以下是一些最佳实践:
- 使用 HTTPS 来确保令牌的安全传输。
- 保持密钥安全,不要在版本控制中公开。
- 为每个用户生成唯一的密钥,以增加安全性。
- 使用刷新令牌机制来延长用户的登录状态。
一个简单的获取 JWT 的示例视图可能是这样的:
from rest_framework_simplejwt.views import ObtainJWTToken
urlpatterns = [
# ...
path('api-token-auth/', ObtainJWTToken.as_view()),
# ...
]
4. 典型生态项目
Django REST Framework SimpleJWT 是 Django 生态系统中的一个重要组成部分。以下是一些可能会与 SimpleJWT 配合使用的典型项目:
- Django REST Framework:用于构建 Web API 的强大框架。
- Django Filter:提供用于 Django REST Framework 的动态查询过滤。
- Django CORS Headers:允许跨源请求,与 REST API 集成时非常有用。
以上是 Django REST Framework SimpleJWT 的基本使用教程。希望对你有所帮助!
djangorestframework-simplejwt 项目地址: https://gitcode.com/gh_mirrors/dja/djangorestframework-simplejwt
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考