我有一些代码设置了$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中使用相同的引擎?!)。
非常感谢任何帮助!
答案 0 :(得分:1)
域和协议http / https
是否相同? http://example.com
和https://example.com
的Cookie可能不同。
对于子域名也要小心,sub.example.com
可能无法看到example.com
个Cookie。
如果您在Safari中启用了Cookie,您应该检查(我认为您确实如此,但如果没有,则执行此操作):)