如何在对 SAP HANA 的 Alexa POST 请求中正确设置 X-CSRF-Token? (403 错误)

How do I set the X-CSRF-Token correctly in an Alexa POST Request to SAP HANA? (403 error)

我对 HTTPS-Post-Request 的 x-csrf-token 验证有疑问。该请求来自 Amazon Alexa 技能触发的 Lambda 函数,并发送到 SAP HANA 数据库中 SAP Cloud Platform 上的 XSO 数据文件 运行。我使用 Javascript/Node.js.

请求 header 中设置了有效令牌(请参阅下面第一张图片中的代码),但响应 header 显示 x-csrf-token "required"(请参阅下面第二张图片中的代码)。所以验证有错误。使用 POSTMAN 的相同 post 请求工作正常,但是当我通过 JS 文件作为 Lambda 函数尝试它时(在第一张图片中)出现了 HTTP 状态代码 403 的错误(参见代码在下面的第二张图片中)。 POST 请求本身有效,但令牌验证无效。 GET 请求工作正常。

有人知道可能的解决方案吗?

非常感谢!

1.picture: request

2.picture: response

请先尝试获取 csrf 令牌,然后再将其设置为请求正文。 CSRF 令牌随着设备以及时间范围的不同而变化。我也有类似的问题,在实施上述解决方案后,它开始完美运行。

我将此作为一个单独的答案来写,因为我在 Spring Boot RestTemplate 调用中遇到了问题。阅读完本文后,我可以找到解决方案。 SAP CSRF Issue

基本上“set-cookie”header 是指示浏览器设置“Cookie”header。所有要做的(除了 x-csrf-token)就是用分号替换 cookie 字符串中的逗号。然后将header“Cookie”设置为这个替换值;