我正在运行节点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请求(相同的代码),但也不起作用。
答案 0 :(得分:0)
Shopify剥离你的饼干是否有任何意义,你无能为力吗?