是否可以在 Swagger ui 之前添加登录页面?

Posted

技术标签:

【中文标题】是否可以在 Swagger ui 之前添加登录页面?【英文标题】:Is it possible to add a login page before Swagger ui? 【发布时间】:2016-04-11 10:26:41 【问题描述】:

我需要在 Swagger UI 之前添加一个单独的登录页面,以便从另一台服务器进行身份验证。从这个请求中,我将获得一个密钥,我必须将它添加到来自 swagger UI 的每个请求的标题中。

我正在使用带有 swagger 2.0 的节点服务器和 swagger-tool。

【问题讨论】:

【参考方案1】:

如果您使用的是 nginx,您可以添加基本的 HTTP 身份验证。然后,任何人只要访问您的文档 url 或子域,他们就会在能够访问 swagger-ui 之前弹出一个用户/密码对话框。

Full instructions 用于创建您的用户/密码组合(假设是 Ubuntu):

sudo apt-get install apache2-utils
sudo htpasswd -c /etc/nginx/.htpasswd exampleuser

该工具会提示您输入密码。

然后更新您的 nginx 文件,为 docs 路由添加类似的内容:

location /docs 
   auth_basic "Restricted Content";
   auth_basic_user_file /etc/nginx/.htpasswd;
   proxy_pass http://0.0.0.0:3000;
 

然后重新加载nginx:

sudo /etc/init.d/nginx reload

【讨论】:

以上是关于是否可以在 Swagger ui 之前添加登录页面?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用API PLATFORM(symfony 4)添加登录到swagger UI?

Swashbuckle.AspNet.Core:Swagger UI 显示空白页面 - 如何修复?

为 Swagger-UI 添加基本授权

如何在 WebAPI 应用程序的 Swagger UI 中添加方法描述

java swagger ui 添加header请求头参数

如何在ASP.Net Core的生产环境中保护swagger ui