我有一点代码,设置了一个$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)。
示例URL:
脚本位置:http://example.com/dev/startcoinbase.php?userid=abcdef
用户的URL:http://example.com/dev/startcoinbase.php?userid=abcdef
从Coinbase:http://example.com/dev/startcoinbase.php?code=code
重定向
真正奇怪的是,当我的代码在iOS应用程序的UIwebview中运行时,在Chrome和桌面上的FF上运行时,效果很好,但在移动Safari浏览器中却不好(即使应用内的webview使用相同的引擎?!)。
如有任何帮助,我们将不胜感激!
域和协议http / https
是否相同?http://example.com
和https://example.com
的Cookie可以不同。
还要注意子域,可能sub.example.com
cookie在example.com
上不可见。
如果你在Safari中启用了cookie,你应该检查(我认为你已经检查了,但如果没有,那就检查):)