非浏览器的 ABP 防伪问题
ABP Antiforgery Issue for non-browser
我是 ABP 的新手,正在尝试启动应用程序。
我在从 Postman 调用 POST 方法时遇到了一个问题,该方法与丢失的防伪标记有关(适用于 Swagger)。
2021-08-03 21:21:20.702 +08:00 [错误] 所需的防伪 cookie“.AspNetCore.Antiforgery.7jj1GDhyCAk”不存在。
2021-08-03 21:21:20.702 +08:00 [INF] 过滤器 'Volo.Abp.AspNetCore.Mvc.AntiForgery.AbpAutoValidateAntiforgeryTokenAuthorizationFilter'.
请求授权失败
在 ABP 文档中,指出“服务器端仅针对浏览器发出的相同和跨站点请求验证防伪令牌。它绕过非浏览器客户端的验证 ."
https://docs.abp.io/en/abp/latest/CSRF-Anti-Forgery#the-solution
Postman 不是被认为是非浏览器客户端吗?我可以在全局配置中或通过向方法添加 [IgnoreAntiforgeryToken] 标记来禁用它,但这意味着来自浏览器客户端的请求也将被禁用以防伪造令牌。
我希望实现的是按照开箱即用的文档中所述。
任何关于此的指示都会很棒。提前致谢。
已编辑 - 来自邮递员的 curl 请求
curl --location --request POST 'https://localhost:44363/api/books/sample' \
--header 'Content-Type: application/json' \
--header 'Cookie: XSRF-TOKEN=CfDJ8KDhwi9YECxIjH1DYIRcrRA1QDj47MryZactcgqszZObbSePQQ8U_8wyUipzzoRXycD7ugQp_XcZX0mtwGN41iANaB5JatRe2tV_1m1MlB4nnccUX5TiecdPmyKYdiNATo0-97249LhhVTi7CiopgwM_Dph5Cw6ZPnOj_IPT-PiDkr1nL3QIxylmqxaUaiwzsw' \
--data-raw '{
"value": 8
}'
感谢@aaron 评论中所述的回答。
对于那些面临同样问题的人,如果您在 Postman 中调用 /connect/authorize,它会自动将 XSRF-TOKEN 添加到隐藏的 header。
单击“Cookies”并从中删除 XSRF-TOKEN。
我是 ABP 的新手,正在尝试启动应用程序。
我在从 Postman 调用 POST 方法时遇到了一个问题,该方法与丢失的防伪标记有关(适用于 Swagger)。
2021-08-03 21:21:20.702 +08:00 [错误] 所需的防伪 cookie“.AspNetCore.Antiforgery.7jj1GDhyCAk”不存在。
2021-08-03 21:21:20.702 +08:00 [INF] 过滤器 'Volo.Abp.AspNetCore.Mvc.AntiForgery.AbpAutoValidateAntiforgeryTokenAuthorizationFilter'.
在 ABP 文档中,指出“服务器端仅针对浏览器发出的相同和跨站点请求验证防伪令牌。它绕过非浏览器客户端的验证 ."
https://docs.abp.io/en/abp/latest/CSRF-Anti-Forgery#the-solution
Postman 不是被认为是非浏览器客户端吗?我可以在全局配置中或通过向方法添加 [IgnoreAntiforgeryToken] 标记来禁用它,但这意味着来自浏览器客户端的请求也将被禁用以防伪造令牌。
我希望实现的是按照开箱即用的文档中所述。
任何关于此的指示都会很棒。提前致谢。
已编辑 - 来自邮递员的 curl 请求
curl --location --request POST 'https://localhost:44363/api/books/sample' \
--header 'Content-Type: application/json' \
--header 'Cookie: XSRF-TOKEN=CfDJ8KDhwi9YECxIjH1DYIRcrRA1QDj47MryZactcgqszZObbSePQQ8U_8wyUipzzoRXycD7ugQp_XcZX0mtwGN41iANaB5JatRe2tV_1m1MlB4nnccUX5TiecdPmyKYdiNATo0-97249LhhVTi7CiopgwM_Dph5Cw6ZPnOj_IPT-PiDkr1nL3QIxylmqxaUaiwzsw' \
--data-raw '{
"value": 8
}'
感谢@aaron 评论中所述的回答。
对于那些面临同样问题的人,如果您在 Postman 中调用 /connect/authorize,它会自动将 XSRF-TOKEN 添加到隐藏的 header。
单击“Cookies”并从中删除 XSRF-TOKEN。