当前位置: 首页 > 知识库问答 >
问题:

如何使用javascript在Swagger UI 3.0版本中添加“承载”身份验证头,而不是单击“授权”按钮

梁丘翔
2023-03-14

但是最近我们转移到了3.0的新版本。结果,这个javascript不再工作了。

是否有任何方法可以使用Swagger UI 3.0中的任何javascript添加Bearer auth的头,而不是单击“授权”按钮。

我这样问是因为每当我打开swagger UI调用API时,手动添加auth真的很烦人。

共有2个答案

穆华彩
2023-03-14

纯javascript操作swaggerUI的方式:reactjs授权表单并设置承载令牌:(来自浏览器控制台,在chrome中测试)

let jwtToken = "YOUR_JWT_TOKEN"; //just token without 'Bearer ' prefix

let openAuthFormButton = document.querySelector(".auth-wrapper .authorize.unlocked");
openAuthFormButton.click();

setTimeout(function() {
    let tokenInput = document.querySelector(".auth-container input");
    let authButton = document.querySelector(".auth-btn-wrapper .modal-btn.auth");
    let closeButton = document.querySelector("button.btn-done");
    
    let nativeInputValueSetter = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, "value").set;
    nativeInputValueSetter.call(tokenInput, jwtToken);
    
    let inputEvent = new Event('input', { bubbles: true});
    tokenInput.dispatchEvent(inputEvent);
    authButton.click();
    closeButton.click();
}, 500);
景令秋
2023-03-14
@Bean
public Docket api() {
    return new Docket(DocumentationType.SWAGGER_2)
        .apiInfo(apiInfo())
        .select()
        .apis(RequestHandlerSelectors.withClassAnnotation(Api.class))
        .paths(PathSelectors.any())
        .build()
        .globalRequestParameters(newArrayList(authorizationHeader()))
        .protocols(Sets.newHashSet("http", "https"));
}

private RequestParameter authorizationHeader() {

    return new RequestParameterBuilder()
        .name("Authorization")
        .description("Authorization header")
        .in(ParameterType.HEADER)
        .required(false)
        .build();
}
 类似资料:
  • 如何在springdoc-openapi-ui(openapi3.0)中启用“authorize”按钮以进行承载令牌身份验证,例如JWT。 必须向Spring和类添加哪些注释?

  • 我已经使用Jhipster生成了一个带有安全选项OAuth2.0/OIDC身份验证的应用程序。我按照http://www.jhipster.tech/security/#Okta的说明重新配置了该应用程序,使用Okta而不是keycloak。所有工作都按预期进行,登录流也按预期执行。 现在我想使用OAuth2.0access_tokens从其他客户机(Postman、Wordpress)访问我的a

  • 我正在尝试使用Sprint安全框架在Spring Boot中为我的HTTP请求设置授权。我是Spring Security的新手,我找不到任何关于我的情况的文档。 我知道我们必须重写WebSecurity配置适配器方法-configure(AuthenticationManagerBuilder) 这是我试图建立的流程。我的前端和后端托管在不同的域中,所以我也在寻找跨来源的授权。通过发布到REST

  • OAuth术语已经困扰我很久了。OAuth授权是像一些人建议的那样,还是认证? 如果我错了,请纠正我,但我一直认为授权是允许某人访问某个资源的行为,而OAuth似乎没有任何实际允许用户访问给定资源的实现。OAuth实现所讨论的都是为用户提供一个令牌(签名的,有时是加密的)。然后,每次调用都会将该令牌传递到后端服务endpoint,在后端服务endpoint上检查该令牌的有效性,这也不是OAuth的

  • 问题内容: 我有angularjs应用程序,用户在其中输入保存到数据库的数据,然后在服务器端将其编译为pdf文件。所有访问都需要适当的身份验证标头。填充所需的数据后,用户可以按按钮保存数据,然后检索pdf文件。理想情况下,我在我的angularjs应用中调用)。这可以正常工作并在另一个窗口中打开,但是如何向此请求添加身份验证标头?以我的理解,我无法下载pdf并使用ajax进行打印,因此我缺少此身份