使用Swagger-Net在Swagger中发送承载令牌

时间:2018-09-20 21:47:45

标签: swagger swashbuckle

我最近已从Swashbuckle过渡到Swagger-Net。进行更改后,我遇到的一个问题是,现在我无法调用需要在Authorization标头中发送令牌的API。以下是我之前在Swashbuckle和现在的Swagger-Net中在SwaggerConfig.cs中保存代码的方式

小巧

//section for .EnableSwagger
c.ApiKey("apiKey")
.Description("API Key Authentication")
.Name("Authorization")
.In("header");

//section for .EnableSwaggerUI
c.EnableApiKeySupport("Authorization", "header");

Swagger-Net

//section for .EnableSwagger
c.ApiKey("Authorization", "header", "API Key Authentication");

对于Swagger-Net,我在.EnableSwaggerUI部分找不到任何等效的.EnableAPIKeySupport。访问/ Swagger UI呈现并使用Authorize传递我的令牌后,它不会将该令牌发送到API。我可以说它没有被发送,因为它不在给定的示例CURL中。

1 个答案:

答案 0 :(得分:3)

是的,Swagger-Net ApiKey就是您所需要的

c.ApiKey("apiKey", "header", "API Key Authentication", typeof(KeyAuthAttribute));

这是一个有效的示例:
http://turoapi.azurewebsites.net/swagger/ui/index#/Echo/Echo_Post

“受保护”操作将在右侧显示一个锁定图标 enter image description here

当您执行它们时,您会看到curl具有正确的内容 enter image description here

后面的代码在这里:
https://github.com/heldersepu/TuroApi/blob/master/TuroApi/App_Start/SwaggerConfig.cs#L67