如何在 Swagger UI 中包含 X-XSRF-TOKEN header?
How to include X-XSRF-TOKEN header in Swagger UI?
我有一个 .NET Core 3.1 Web API,我想为其添加 XSRF 保护。所以我现在需要在我的所有端点上的 X-XSRF-TOKEN
HTTP header 中的防伪令牌,如 here 所述。 JavaScript 客户端通过点击 /antiforgerytoken
端点获取令牌,这会设置一个包含令牌的 XSRF-TOKEN
cookie。这一切都很好,但正如人们所期望的那样,“试一试!” Swagger UI 中的功能不再有效,因为请求缺少 X-XSRF-TOKEN
HTTP header。有没有办法让 SwaggerUI 自动调用 /antiforgerytoken
端点并将令牌包含在正在执行的请求中?
在 Swagger UI 上,这可以通过在配置上设置 requestInterceptor
来支持,该配置是拦截和修改传出请求(包括“试用”请求)的功能。请参阅 this comment in Swagger UI repo and the README 上的 Swagger UI 配置。
但是,Swashbuckle.AspNetCore.SwaggerUI
在最新的稳定版本 (5.6.3) 中尚不支持在 C# 中设置 requestInterceptor
。有this PR增加了对拦截器的支持,已经合并但还没有发布。因此,如果您正在使用 Swashbuckle.AspNetCore.SwaggerUI
,您现在的选择是等待下一个版本,或者在下一个正式版本之前从源代码构建本地版本。
我有一个 .NET Core 3.1 Web API,我想为其添加 XSRF 保护。所以我现在需要在我的所有端点上的 X-XSRF-TOKEN
HTTP header 中的防伪令牌,如 here 所述。 JavaScript 客户端通过点击 /antiforgerytoken
端点获取令牌,这会设置一个包含令牌的 XSRF-TOKEN
cookie。这一切都很好,但正如人们所期望的那样,“试一试!” Swagger UI 中的功能不再有效,因为请求缺少 X-XSRF-TOKEN
HTTP header。有没有办法让 SwaggerUI 自动调用 /antiforgerytoken
端点并将令牌包含在正在执行的请求中?
在 Swagger UI 上,这可以通过在配置上设置 requestInterceptor
来支持,该配置是拦截和修改传出请求(包括“试用”请求)的功能。请参阅 this comment in Swagger UI repo and the README 上的 Swagger UI 配置。
但是,Swashbuckle.AspNetCore.SwaggerUI
在最新的稳定版本 (5.6.3) 中尚不支持在 C# 中设置 requestInterceptor
。有this PR增加了对拦截器的支持,已经合并但还没有发布。因此,如果您正在使用 Swashbuckle.AspNetCore.SwaggerUI
,您现在的选择是等待下一个版本,或者在下一个正式版本之前从源代码构建本地版本。