【发布时间】:2017-12-25 06:45:52
【问题描述】:
我部署了一个完整的 API,并可通过 Swagger UI 访问。它使用基于 HTTPS 的基本身份验证,并且可以轻松点击“授权”按钮并输入凭据,并且与不错的 Try it out 一起使用效果很好!功能。
但是,我想使用共享的用户名和密码制作 API 的公共沙盒版本,该版本始终经过身份验证;也就是说,任何人都不应该打开授权对话框来输入凭据。
我尝试根据另一个 Stack Overflow 问题的答案输入授权,方法是将以下代码放入 HTML 页面上的 script 元素中:
window.swaggerUi.load();
swaggerUi.api.clientAuthorizations.add("key",
new SwaggerClient.ApiKeyAuthorization(
"Authorization", "Basic dXNlcm5hbWU6cGFzc3dvcmQ=", "header"));
但是,当我点击Try it out! 按钮时,没有使用授权。
在所有端点上全局设置 auth 标头的正确方法是什么,这样用户就不必手动输入凭据?
(我知道这听起来像是一个奇怪的问题,但就像我提到的,它是一个公共用户名/密码。)
【问题讨论】:
-
哪个版本的 Swagger UI?我认为该代码适用于 2.x,并且在 3.x 中(还)不起作用。
-
确实是2.0,可惜不行……可能和YAML规范中已有的字段有些冲突,比如
securityDefinitions?
标签: basic-authentication swagger-ui swagger-2.0