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

现在,我已经使用巴迪添加了身份验证,我的API需要在请求的头中传递一个令牌,否则它会拒绝请求,因为这是禁止的。
我正在尝试获得一个“授权”headers字段,以便神奇地出现在我的UI中,这样我就可以输入一个JWT令牌字符串并测试我的API。对于任何使用reitit创建API的人来说,这肯定是一个非常普遍的要求,但我不知道如何做到这一点。我四处搜索,发现了这个reitit问题页面,其中包括文本.
标头参数被声明为小写字符串{:Header {“授权”字符串?},这将与Ring提供的内容完全匹配。(仍然可以用HTTP头--用它们作为文档。)
...and建议设置如下..。
:get {:summary "list offers"
:parameters
{:headers
{"authorization" string?}}
... etc这样做并没有给我任何验证的方法。因此,我找到了这一讨论并编辑了我的路由,在上面的路由中添加了以下内容:汇总和:参数.
:middleware [authenticated?]
:swagger {:security [:apiKey]}加上这个,我明白了.

...which看起来是在正确的轨道上,但我仍然无法在auth标题中输入标记。
就像我说的,一切都和卷发有关.只是这样的招摇过市并没有显示任何方式添加auth标题。有人知道如何让Swagger在这个场景中发挥作用吗?
如果reitit不支持这一点,那么人们如何使用Swagger进行身份验证请求?
任何帮助都将不胜感激!
发布于 2020-04-28 10:42:08
好的。解决了。
在API路由的根(封装所有可能使用此身份验证的路由),我添加:securityDefinition。
["/api"
{:swagger {:id ::api
:securityDefinitions {:apiAuth
{:type "apiKey"
:name "Authorization"
:in "header"
}}}在特定路线内:
:middleware [authenticated?]
:swagger {:security [{:apiAuth []}]}https://stackoverflow.com/questions/61469164
复制相似问题