如果shopify

时间:2016-12-19 17:13:34

标签: iframe cookies shopify hapijs

我正在运行节点v6.9.1,我有一个使用hapi@16.0.1运行的简单服务器

我可以使用以下代码在路线/cookies/set设置Cookie:

server.route({
    method: 'GET',
    path: '/cookies/set',
    config: {
        handler: (request: hapi.Request, reply: hapi.IReply) => {
            reply('cookie set').state('data', JSON.stringify({
                hasCookie: true
            }));
        }
    }
});

使用以下代码在/cookies/get检索Cookie:

server.route({
    method: 'GET',
    path: '/cookies/get',
    config: {
        state: {
            parse: true,
            failAction: 'error'
        },
        handler: (request: hapi.Request, reply: hapi.IReply) => {
            reply({
                cookie: request.state
            })
        }
    }
});

在本地浏览时可以正常工作。我设置了另一个在不同端口上运行的服务器,其中有一个index.html,用于iframe的cookie演示。

iframe src指向http://localhost:9500/cookies/set,然后使用开发工具,我将iframe重定向到/cookies/get,一切正常 - 我可以看到hasCookie: true被退回。

然后我设置了shopify嵌入式应用,在使用OAuth进行身份验证后,重定向到/cookies/set并获得响应'Cookie set'

再次使用开发工具,我将框架重定向到/cookies/get,但这次cookie是空白的?

我在shopify上没有出现控制台错误或任何错误,我也没有错误。我甚至在https上运行了localhost,以确保在https页面中构建一个http页面并不奇怪。

为什么我无法访问cookie?为什么它的行为不同于我设置不同的服务器并模仿shopify的设置? (localhost:8000是localhost的不同域名:9500,就像shopify.com与localhost不同)

我尝试了很多cookie /会话库等无济于事。

我已启用第三方Cookie。

我没有做任何奇怪的跨域内容 - iframed页面是独立的,不需要知道有关父页面的任何信息。

我还尝试让/cookies/get返回一个简单的http页面,该页面向/cookies/get2发出XHR请求(相同的代码),但也不起作用。

1 个答案:

答案 0 :(得分:0)

Shopify剥离你的饼干是否有任何意义,你无能为力吗?