我正在构建一些Swagger文档,一切都很好,除了我想让页面以交互方式工作之外,所以当我选择编辑器或UI时,如果我点击authorize按钮,我将调用我的身份验证URL,它构建JWT令牌,然后在后续的请求中使用。
我计划向API客户端发布一个Api访问密钥和一个秘密访问密钥,并希望访问一个身份验证页面,该页面将处理这些密钥并构建JWT令牌。
我突然意识到,如果我能够正确定义如何在Swagger中实现这一点,那么我将拥有一个现成的测试客户端,然后用于我的新代码。
是的,这是我第一次使用JWT,我还没有构建代码。你能说"API-First“吗?
发布于 2017-12-09 13:35:36
这就是我将Swagger与JWT身份验证结合使用的方法:
<
这将在浏览器上的Swagger UI中显示授权按钮。
一起传递
希望这对其他人有所帮助。
发布于 2018-12-20 13:08:20
使用Swagger可以保存令牌并自动将令牌应用到您的所有请求。
以下是您需要添加到Swagger摘要配置中的内容:
@Bean
public Docket newsApi() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build()
.securitySchemes(Lists.newArrayList(apiKey()))
.securityContexts(Lists.newArrayList(securityContext()))
.apiInfo(generateApiInfo());
}
@Bean
SecurityContext securityContext() {
return SecurityContext.builder()
.securityReferences(defaultAuth())
.forPaths(PathSelectors.any())
.build();
}
List<SecurityReference> defaultAuth() {
AuthorizationScope authorizationScope
= new AuthorizationScope("global", "accessEverything");
AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
authorizationScopes[0] = authorizationScope;
return Lists.newArrayList(
new SecurityReference("JWT", authorizationScopes));
}
private ApiKey apiKey() {
return new ApiKey("JWT", "Authorization", "header");
}加载Swagger UI后,您将能够看到Authorize按钮。

您可以保存您的令牌,请确保在您的令牌前面添加了“持有者”。

https://stackoverflow.com/questions/43669302
复制相似问题