在移动Safari中重定向后,Cookie未定义

时间:2015-02-23 13:00:58

标签: php cookies uiwebview mobile-safari

我有一些代码设置了$userid cookie,然后重定向如下:

$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'],它会显示用户ID。到现在为止还挺好。

重定向到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 个答案:

答案 0 :(得分:1)

域和协议http / https是否相同? http://example.comhttps://example.com的Cookie可能不同。

对于子域名也要小心,sub.example.com可能无法看到example.com个Cookie。

如果您在Safari中启用了Cookie,您应该检查(我认为您确实如此,但如果没有,则执行此操作):)