2015-02-23 201 views
0

我的那组是一个$userid饼干码一点点,然后重定向如下:Cookie被重定向后未定义移动Safari浏览器

$userid = $_GET['userid']; 
setcookie('userid',$userid,time() + (864000 * 7), '/'); 

header("Location: https://coinbase.com/oauth/authorize?response_type=code&client_id=$clientid&redirect_uri=$redirecturi"); 

这工作得很好。如果在设置后回显$_COOKIE['userid'],则会显示用户标识。到现在为止还挺好。

重定向到Coinbase OAuth页面,用户必须登录并允许我的站点访问他们的钱包。流程Coinbase将用户重定向到$redirecturi,该页面与设置的Cookie代码位于同一页面。

然后,我使用$_COOKIE['userid']来确定哪个用户完成了身份验证过程并存储了从Coinbase收到的数据。另外,我会检查是否设置了$_GET['code'],因此代码的两部分是分开的(我不是不小心将$_GET['userid']设置为cookie)。

网址示例:

脚本位置:http://example.com/dev/startcoinbase.php?userid=abcdef

网址供用户选择:http://example.com/dev/startcoinbase.php?userid=abcdef

从Coinbase重定向:http://example.com/dev/startcoinbase.php?code=code

真正奇怪的是,我的代码工作得很好,当在iOS应用程序的UIwebview中,在Chrome和FF桌面上运行,但不在移动Safari浏览器中运行(即使应用程序webviews使用相同的引擎?!)。

任何帮助将不胜感激!

回答

1

域和协议http/https是一样的吗?对于http://example.comhttps://example.com的Cookie可以不同。

也要警惕子域名,也许sub.example.com Cookie不可见在example.com

你应该检查(我认为你做了,但如果没有,那么做),如果你在Safari中启用了Cookie :)

+0

一个域名是www。前缀和其他不是..愚蠢的错误,但感谢您指出它! – Andre 2015-02-23 13:29:55

+0

没问题!尝试始终坚持使用“www”或“non-www”的一个域名。不要混用它。它对谷歌和SEO的东西有很大的影响:) – Forien 2015-02-23 13:31:27

相关问题