亚马逊说我没有传递 cookie,但我传递了

Amazon says I'm not passing cookies, but I am

好的,所以,我基本上是在创建一个网站,用户可以在该网站上在亚马逊上购物,但通过我们运送他们的货物。最好的方法是反向代理亚马逊,然后在结账时挂钩到购物车。

问题:我的一切设置都正确,我的反向代理工作正常,但是当我尝试将商品添加到卡片时,Amazon 给我:

Important messages about items in your Cart: Please Enable Cookies in your Web Browser to Continue.

Learn more about cookies and how to enable them.

Once you have enabled cookies, please click here to continue shopping.

问题是,我已经在传递 cookies:

proxy_pass_header  Set-Cookie;
proxy_pass_header  P3P;

我知道这是可能的,因为我已经看到多个其他网站在做类似的事情,并且在将我的 cookie 与它们进行比较时,我发现它们完全相同。

查看完整配置文件here

更新

我尝试使用 proxy_cookie_domain 但它也不起作用:

proxy_cookie_domain amazon.com localhost:3000;
proxy_cookie_domain .amazon.com .localhost:3000;

nginx 会自动以两种方式传递 cookie,您无需修改​​其行为即可继续传递 cookie。

但是,可能发生的情况是 cookie 的 Domain and/or 和 Secure 属性不匹配,因此,您的浏览器要么不接受 cookie,and/or 由于非安全连接 and/or 域不匹配而未发送它。

https://developer.mozilla.org/docs/Web/HTTP/Headers/Set-Cookie

Set-Cookie: <cookie-name>=<cookie-value>; Domain=<domain-value>; Secure

如果是域问题,您可以使用 proxy_cookie_domain 来解决。