【问题标题】:How to add JWT auth to swagger (go + echo + swaggo/swag)如何将 JWT auth 添加到 swagger (go + echo + swaggo/swag)
【发布时间】:2019-10-04 05:15:59
【问题描述】:

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

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

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

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

我已经阅读了https://github.com/swaggo/swag 的 README,并在 Google 上进行了搜索,但无济于事。

【问题讨论】:

    标签: go swagger swagger-2.0 go-echo


    【解决方案1】:

    您将在 main.go 中需要这些(这会将令牌格式发送到您的标头:“YourTokenName:token”):

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

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

    // @Security <YourTypeOfKey>
    

    【讨论】:

      【解决方案2】:

      似乎添加到每个端点的这些 cmets 起到了作用...

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

      这条评论也被添加到我们的 main.go 文件中

      // @securityDefinitions.apikey ApiKeyAuth
      

      【讨论】:

      • 不是在 main.go 文件中添加 //@param 破坏注释的目的吗?我的意思是将它添加为@param 就像是在说,嘿,我需要它作为该端点明确的标头
      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        // @Param Authorization header string true "Insert your access token" default(Bearer &lt;Add access token here&gt;)

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-12-05
          • 1970-01-01
          • 2020-10-01
          • 2016-05-27
          • 1970-01-01
          • 2021-03-20
          • 1970-01-01
          • 2015-05-14
          相关资源
          最近更新 更多