将 API 键添加到 DRF 可浏览 API 页面中的 header

Add API key to a header in a DRF browsable API page

我正在 API 上启用 token/api-key 身份验证。但是一旦启用它,我就无法再使用 DRF 的可浏览 API 页面。我知道我可以在开发时禁用身份验证,但这是一个好奇的问题:我可以向发送到可浏览 API 页面的每个请求的 header 添加一个 api-key 吗?我可以通过调整浏览器设置来做到这一点吗?或者是否可以调整 Browsable API 页面本身并将 api-key 硬编码到其中?

处理这种情况的更好方法是将 SessionAuthentication 添加到设置中的 DEFAULT_AUTHENTICATION_CLASSES 部分

# settings.py

REST_FRAMEWORK = {
    "DEFAULT_AUTHENTICATION_CLASSES": [
        "rest_framework.authentication.TokenAuthentication",
        <b>"rest_framework.authentication.SessionAuthentication",</b>
    ],
}

更准确地说,

# settings.py

REST_FRAMEWORK = {
    "DEFAULT_AUTHENTICATION_CLASSES": [
        "rest_framework.authentication.TokenAuthentication",
    ],
}
<b>if DEBUG:
    REST_FRAMEWORK["DEFAULT_AUTHENTICATION_CLASSES"].append(
        "rest_framework.authentication.SessionAuthentication"
    )</b>

通过这样做,您可以使用您的APIKeysession key来验证请求。