我的那组是一个$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使用相同的引擎?!)。
任何帮助将不胜感激!
一个域名是www。前缀和其他不是..愚蠢的错误,但感谢您指出它! – Andre 2015-02-23 13:29:55
没问题!尝试始终坚持使用“www”或“non-www”的一个域名。不要混用它。它对谷歌和SEO的东西有很大的影响:) – Forien 2015-02-23 13:31:27