首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使Swagger允许我提供身份验证头?

如何使Swagger允许我提供身份验证头?
EN

Stack Overflow用户
提问于 2020-04-27 21:58:10
回答 1查看 1.1K关注 0票数 7

我使用Luminus,连同reitit和swagger生成一个页面,让我可以试用我的Luminus。我可以输入我的API请求体并提交来测试我的API。

现在,我已经使用巴迪添加了身份验证,我的API需要在请求的头中传递一个令牌,否则它会拒绝请求,因为这是禁止的。

我正在尝试获得一个“授权”headers字段,以便神奇地出现在我的UI中,这样我就可以输入一个JWT令牌字符串并测试我的API。对于任何使用reitit创建API的人来说,这肯定是一个非常普遍的要求,但我不知道如何做到这一点。我四处搜索,发现了这个reitit问题页面,其中包括文本.

标头参数被声明为小写字符串{:Header {“授权”字符串?},这将与Ring提供的内容完全匹配。(仍然可以用HTTP头--用它们作为文档。)

...and建议设置如下..。

代码语言:javascript
复制
:get {:summary "list offers"
      :parameters 
        {:headers 
          {"authorization" string?}}
         ... etc

这样做并没有给我任何验证的方法。因此,我找到了这一讨论并编辑了我的路由,在上面的路由中添加了以下内容:汇总和:参数.

代码语言:javascript
复制
             :middleware [authenticated?]
             :swagger {:security [:apiKey]}

加上这个,我明白了.

...which看起来是在正确的轨道上,但我仍然无法在auth标题中输入标记。

就像我说的,一切都和卷发有关.只是这样的招摇过市并没有显示任何方式添加auth标题。有人知道如何让Swagger在这个场景中发挥作用吗?

如果reitit不支持这一点,那么人们如何使用Swagger进行身份验证请求?

任何帮助都将不胜感激!

EN

回答 1

Stack Overflow用户

发布于 2020-04-28 10:42:08

好的。解决了。

在API路由的根(封装所有可能使用此身份验证的路由),我添加:securityDefinition。

代码语言:javascript
复制
  ["/api"
   {:swagger {:id ::api
              :securityDefinitions {:apiAuth
                                             {:type "apiKey"
                                              :name "Authorization"
                                              :in "header"
                                              }}}

在特定路线内:

代码语言:javascript
复制
             :middleware [authenticated?]
             :swagger {:security [{:apiAuth []}]}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61469164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档