📜  Django UTC 中的 JET 令牌身份验证 (1)

📅  最后修改于: 2023-12-03 14:40:46.641000             🧑  作者: Mango

Django UTC 中的 JET 令牌身份验证

介绍

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 令牌身份验证的基本概念。有关更多信息,请参阅官方文档。