如何在swagger ui v.3.0中使用Basic auth

Ale*_*lex 7 swagger-ui

在swagger ui 2.0中它是代码

var basicAuth = new SwaggerClient.PasswordAuthorization("basicAuth", username, password);
window.swaggerUi.api.clientAuthorizations.add("basicAuth", basicAuth);
Run Code Online (Sandbox Code Playgroud)

有人可以提供版本swagger ui 3.0的代码吗?

谢谢.

编辑.我试图做这样的事情 - 为Swagger-UI添加基本授权

我在使用Basic auth的服务器上使用Swagger.所以我不能初始化库.

  const ui = SwaggerUIBundle({
url: "http://petstore.swagger.io/v2/swagger.json",
dom_id: '#swagger-ui',
presets: [
  SwaggerUIBundle.presets.apis,
  // yay ES6 modules ?
  Array.isArray(SwaggerUIStandalonePreset) ? SwaggerUIStandalonePreset : SwaggerUIStandalonePreset.default
],
plugins: [
  SwaggerUIBundle.plugins.DownloadUrl
],
layout: "StandaloneLayout"
  })

window.ui = ui
Run Code Online (Sandbox Code Playgroud)

没有基本的auth一切正常.

基本身份验证已启用 - http://prntscr.com/enxee4

mar*_*cos 2

我使用简单的表单构建了一个 index.html 来填充用户凭据以获取会话 ID。然后重定向到 swagger.html,并进行一些更改。

在window.onload之前:

var orgFetch;

window.setExtraHeader = function(sessionId) {
    var system = window.ui.getSystem();

    if(!system) return;

    if(!orgFetch) {
        orgFetch = system.fn.fetch;
    }

    system.fn.fetch = function(obj) {
        if(!obj) return;

        if(!obj.headers) {
            obj.headers = {};
        }

        obj.headers['sessionId'] = sessionId;

        return orgFetch(obj)
            .then(function(fetchRes) {
                return fetchRes;
            });
    }

    system.specActions.download();
}
Run Code Online (Sandbox Code Playgroud)

进而:

window.ui = ui;
window.setExtraHeader(localStorage.getItem("sessionId"));
Run Code Online (Sandbox Code Playgroud)

来源: https: //github.com/swagger-api/swagger-ui/issues/2793

希望这可以帮助。