如何在对 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”设置为这个替换值;
我对 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”设置为这个替换值;