📅  最后修改于: 2023-12-03 14:40:46.641000             🧑  作者: Mango
Django UTC 中的 JET 令牌身份验证是一种基于 JSON Web Token (JWT) 的身份验证方式,它基于 Django 自带的用户认证系统,并提供了一些预先构建的视图和 URL,使得在 Django 应用程序中启用身份验证变得更加容易。
要使用 Django UTC 中的 JET 令牌身份验证,您需要在 Django 应用程序中安装 djangorestframework-jwt
库。您可以使用 pip 命令来安装它:
pip install djangorestframework-jwt
安装后,您需要在 Django 的 settings.py
文件中配置 JWT 相关设置:
# settings.py
INSTALLED_APPS = [
# ...
'rest_framework',
'rest_framework_jwt',
# ...
]
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework_jwt.authentication.JSONWebTokenAuthentication',
# ...
),
}
# JWT 相关设置
JWT_AUTH = {
'JWT_EXPIRATION_DELTA': datetime.timedelta(days=1),
'JWT_ALLOW_REFRESH': True,
'JWT_REFRESH_EXPIRATION_DELTA': datetime.timedelta(days=7),
'JWT_SECRET_KEY': 'secret',
'JWT_AUTH_HEADER_PREFIX': 'Bearer',
}
这将启用 JWT 身份验证,并指定 JWT 相关设置。通过配置 DEFAULT_AUTHENTICATION_CLASSES
设置,我们告诉 Django 框架在身份验证中使用 JWT。您还可以根据需要调整其他的 JWT 设置。
一旦您已经配置好 JWT 身份验证,您就可以开始使用它了。要使用 JWT 身份验证,您需要首先向 /api/token-auth/
端点发送 POST 请求,以获得一个 JWT 令牌。要发送请求,您需要使用有效的用户名和密码。以下是一个使用 requests
库来向 /api/token-auth/
端点获取 JWT 令牌的示例代码:
import requests
url = 'http://localhost:8000/api/token-auth/'
data = {'username': 'your_username', 'password': 'your_password'}
response = requests.post(url, data=data)
token = response.json().get('token')
在获取 JWT 令牌后,您可以将其作为 HTTP 请求的头部信息的一部分发送,以验证请求。以下是一个带有 JWT 令牌头部信息的 GET 请求的示例代码:
import requests
url = 'http://localhost:8000/your_api_endpoint/'
headers = {'Authorization': 'Bearer {}'.format(token)}
response = requests.get(url, headers=headers)
这就是 Django UTC 中的 JET 令牌身份验证的基本概念。有关更多信息,请参阅官方文档。