使用Swashbuckle.AspNetCore进行自定义身份验证

时间:2018-03-06 16:54:27

标签: asp.net-core swagger swashbuckle

目前,我们正在使用Swashbuckle.AspNetCore生成Swagger 2.0文档。使用的身份验证机制需要三个标头:

  • X-API-KEY:共享密钥
  • X-API-SIGN:由HMACSHA256散列值哈希秘密,时间戳,方法,端点和正文组成的请求的签名
  • X-API-TIMESTAMP:这与签名
  • 中使用的时间戳相同

我不认为Swagger或Swashbuckle原生支持这一点,所以我可能需要设置一些javascript来填充隐藏字段或swagger文档中的内容。

我目前正在使用OperationFilter为每个请求添加操作参数。一旦页面加载,这对我没有帮助,因为用户需要输入他们的API密钥和秘密,其他所有内容都是基于。显然,这里需要javascript。

任何人都可以提供如何干净利落地处理这个问题的建议吗?

1 个答案:

答案 0 :(得分:1)

我想把它作为评论,但评论不允许格式,所以你去:

Swashbuckle.AspNetCore似乎缺少InjectJavaScript功能:
https://github.com/domaindrivendev/Swashbuckle.AspNetCore/search?l=C%23&q=InjectJavaScript

旧项目就在那里:
https://github.com/domaindrivendev/Swashbuckle/search?l=C%23&q=InjectJavaScript

这就是我以前用来注入一些javascript的东西,但没有我们非常有限。

现在从不同的角度来看这个:

似乎你想在swagger ui上嵌入认证过程...
也许在后端,如果请求来自Swagger-Ui,则应绕过身份验证