如何解决如何通过react js向SAP服务器发送和接收cookie?
让我尝试解释一下我目前的情况:
我必须从SAP消费一个api剩余部分,我需要获得一个令牌和一个X-CSRF-Token,它们都工作良好,我从SAP那里获得了它们和会话cookie,直到现在一切正常。要使用api rest,我必须通过标头发送令牌和会话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如何在浏览器中显示的示例图像(不是我的)
我也一直在修改cookie的google标志,但是它没有用。链接仅是:chrome:// flags /
如果有人可以帮助我,我将非常感激。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。