如何为基于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
相关产品推荐
相关产品推荐

