我尝试进行REST
调用(SAP Netweaver API
方法)。
API要求随呼叫一起发送CSRF令牌。
手动使用REST客户端时,我可以发送获取令牌的请求(使用包含标头"X-CSRF-Token: Fetch"
的HTTP GET和另一个包含用于基本身份验证的编码凭据的请求("授权:基本) &#34)。
响应包含带有CSRF令牌的标头。
在第二个调用中,我在标头"X-CSRF-Token: <token>"
中提供了令牌,并提供了相同的编码凭据。
第二次调用成功,我得到了其余调用的结果。
现在,我想以编程方式调用相同的API。
- 我是否需要执行此往返才能获得令牌,或者是否有办法自动执行此操作?
- 如果是这样,我如何检测到我必须获取并发送令牌? (是否在服务器端启用了AntiForgeryToken处理?)
- 如何实际获取令牌并将其添加到REST呼叫中?
醇>
有什么建议吗?
答案 0 :(得分:0)
当您使用令牌(JWT / CSRF令牌)时,您需要在第一时间从响应头读取。然后,您可以使用SessionStorage来存储它。在向API发出任何请求之前,您需要手动将JWT / CSRF令牌添加到Http Headers。在angular中,你可以使用http拦截器,在一个地方添加你的逻辑。所以你不需要在多个地方添加/检索