You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为基于drf-yasg的Django Swagger添加用户名密码弹窗验证

drf-yasg 实现Swagger页面用户名密码校验方案

首先明确:不能仅通过Django配置文件中的单一配置项设置固定访问凭据,需要结合drf-yasg的安全配置与Django原生身份体系完成需求,具体操作如下:

1. 配置drf-yasg启用Basic认证

在项目settings.py中添加如下配置:

SWAGGER_SETTINGS = {
    # 启用Basic(用户名密码)安全校验方案
    "SECURITY_DEFINITIONS": {
        "Basic": {
            "type": "basic"
        }
    },
    # 限制只有已通过身份校验的用户可访问Swagger页面
    "DEFAULT_PERMISSION_CLASSES": [
        "rest_framework.permissions.IsAuthenticated"
    ]
}

2. 配置访问凭据

校验逻辑直接复用Django原生用户体系:

  • 执行python manage.py createsuperuser命令创建管理员账号,该账号即可作为Swagger页面的访问凭据
  • 如有需要,也可创建普通激活状态的Django用户,这类账号同样可以通过校验

可选:自定义固定凭据不依赖Django用户体系

如果不需要复用Django用户体系,想单独设置Swagger页面的固定访问账号密码,可以给Swagger路由添加基础认证中间件,在中间件中硬编码校验规则即可,无需修改drf-yasg的相关配置。

内容的提问来源于stack exchange,提问作者nivedita

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 20:45:00