微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 Swagger UI 中包含 X-XSRF-TOKEN 标头?

如何解决如何在 Swagger UI 中包含 X-XSRF-TOKEN 标头?

我有一个 .NET Core 3.1 Web API,我想向其中添加 XSRF 保护。因此,我现在需要在所有端点上的 X-XSRF-TOKEN HTTP 标头中使用防伪令牌,如 here 所述。 JavaScript 客户端通过点击 /antiforgerytoken 端点获取令牌,该端点设置包含令牌的 XSRF-TOKEN cookie。这一切都很好,但正如人们所料,“试试看!” Swagger UI 中的功能不再有效,因为请求缺少 X-XSRF-TOKEN HTTP 标头。有没有办法让 SwaggerUI 自动调用 /antiforgerytoken 端点并在正在执行的请求中包含令牌?

解决方法

在 Swagger UI 上,这可以通过在配置上设置 requestInterceptor 来支持,该配置是拦截和修改传出请求(包括“试用”请求)的功能。请参阅 Swagger UI 存储库中的 this comment 和 Swagger UI 配置中的 README

但是,从最新的稳定版本 (5.6.3) 开始,Swashbuckle.AspNetCore.SwaggerUI 尚不支持在 C# 中设置 requestInterceptor。有 this PR 增加了对拦截器的支持,它已经合并但尚未发布。因此,如果您正在使用 Swashbuckle.AspNetCore.SwaggerUI,您现在的选择是等待下一个版本,或者在下一个正式版本之前从源代码构建本地版本。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。