微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何通过react js向SAP服务器发送和接收cookie?

如何解决如何通过react js向SAP服务器发送和接收cookie?

让我尝试解释一下我目前的情况:

我必须从SAP消费一个api剩余部分,我需要获得一个令牌和一个X-CSRF-Token,它们都工作良好,我从SAP那里获得了它们和会话cookie,直到现在一切正常。要使用api rest,我必须通过标头发送令牌和会话cookie。

问题在于浏览器会阻止cookie,因为它们无法满足某些条件,例如:

  • 此设置的cookie被阻止,因为它具有安全属性,但未通过安全连接接收
  • 此设置的Cookie被阻止,因为其域属性对问候无效

起初,我无法连接到SAP,从而导致Same Origin的CORS策略,我已经使用http-proxy-middleware解决了该问题,我通过axios进行了调用(我已激活withCredentials:true,让它知道我需要曲奇饼干) 。但是现在问题似乎仍然是cookie,因为调用api后收到的结果是403 Forbidden。

我已经由邮递员进行了测试,并且一切正常,我可以将令牌作为cookie并使用SAP的服务,问题出在客户端(浏览器)。

此外,我无权访问后端来配置cors和cookie,因此后端所提供的解决方案不是我想要的。此外,通过node.js构建代理服务器是我的最后选择,在此之前,我想知道是否只能由客户端控制这种情况,为此我使用了React JS。

这是我的条件代码的一部分:

代理

const { createProxyMiddleware } = require('http-proxy-middleware');

module.exports = function(app) {
    app.use("/oauth2/token",createProxyMiddleware( {
            target: "https://sapConnectionOauth.com",changeOrigin: true,secure:true,cookieDomainRewrite: {
                "*": "sapConnectionOauth.com"
            }
        })
    );
    app.use("/http/serviceIWannaUse",createProxyMiddleware( {
            target: "https://sapConnection.com",cookieDomainRewrite: {
                "*": "sapConnection.com" 
            }
        })
    );
};

我要使用的服务

export const serviceIWannaUse = async (token,xcsrf) => {
    console.log('entra a serviceIWannaUse')

    let config= {
        url:
            "/http/serviceIWannaUse",method: "POST",withCredentials: true,headers: {
            Accept: "application/json","Content-Type": "application/json","X-CSRF-Token": xcsrf,Authorization: `Bearer ${token}`,},};
    return await axios(config)
};

这是setCookies如何在浏览器中显示的示例图像(不是我的)

enter image description here

我也一直在修改cookie的google标志,但是它没有用。链接仅是:chrome:// flags /

如果有人可以帮助我,我将非常感激。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。