如何将JWT身份验证添加到swagger(go + echo + swaggo / swag)

时间:2019-05-16 21:27:18

标签: go swagger swagger-2.0 echo-framework

我正在使用swaggo(https://github.com/swaggo/swag)为我的API自动创建有效的swagger规范。

swagger规范允许我运行所有API端点并接收响应。

然后我向所有端点添加了JWT身份验证。现在,我无法使用swagger规范来运行任何端点,因为它总是无法通过身份验证。

我需要在每个端点上添加哪些批注,以配置Swagger规范以允许传递JWT?

我已阅读https://github.com/swaggo/swag上的自述文件,但Google搜索无济于事。

4 个答案:

答案 0 :(得分:0)

似乎这些添加到每个端点的注释起到了作用……

// @Security ApiKeyAuth
// @param Authorization header string true "Authorization"

此评论也已添加到我们的main.go文件中

// @securityDefinitions.apikey ApiKeyAuth

答案 1 :(得分:0)

似乎您添加的JWT中间件将在swaaggo / swag的处理程序之前被调用。您可以发布路由设置吗?

答案 2 :(得分:0)

在main.go中将需要它们(这会将令牌以格式发送到标头:“ YourTokenNametoken”):

//@securityDefinitions.apikey <YourTypeOfKey>
//@in header
//@name <YourTokenName>

然后将此注释添加到需要身份验证令牌的每个端点:

// @Security <YourTypeOfKey>

答案 3 :(得分:0)

// @Param Authorization header string true "Insert your access token" default(Bearer <Add access token here>)

将此参数添加到 swagger v2.0 中每个端点的标头

在 V3.0 中,我们可以直接访问不记名令牌。