我有一个 .NET Core 3.1 Web API,我想为其添加 XSRF 保护。因此,我现在需要在所有端点上的 X-XSRF-TOKEN
HTTP header 中添加防伪 token ,如 here 中所述。 。 JavaScript 客户端通过点击 /antiforgerytoken
端点获取 token ,该端点设置包含该 token 的 XSRF-TOKEN
cookie。这一切都很好,但正如人们所期望的那样,“尝试一下!” Swagger UI 中的功能不再起作用,因为请求缺少 X-XSRF-TOKEN
HTTP header 。有没有办法让 SwaggerUI 自动调用 /antiforgerytoken
端点并将 token 包含在正在执行的请求中?
最佳答案
在 Swagger UI 上,可以通过在配置上设置 requestInterceptor
来支持这一点,该函数是拦截和修改传出请求(包括“Try it out”请求)的函数。请参阅this comment在 Swagger UI 存储库和 README 中关于 Swagger UI 配置。
但是,自最新稳定版本 (5.6.3) 起,Swashbuckle.AspNetCore.SwaggerUI
尚不支持在 C# 中设置 requestInterceptor
。有this PR添加了对拦截器的支持,并且已合并但尚未发布。因此,如果您使用的是 Swashbuckle.AspNetCore.SwaggerUI
,您现在的选择是等待下一个版本,或者在下一个正式版本之前从源代码构建本地版本。
关于asp.net-core - 如何在 Swagger UI 中包含 X-XSRF-TOKEN header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66035690/