在移动 Safari 中重定向后 Cookie 未定义
Cookie is undefined after redirect in 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']
,它会显示用户标识。到目前为止,一切都很好。
重定向到 Coinbase OAuth 页面,用户必须在该页面上登录并允许我的网站访问他们的钱包。处理完成后,Coinbase 将用户重定向到 $redirecturi
,该页面与设置的 cookie 代码所在的页面相同。
然后我使用 $_COOKIE['userid']
来确定哪个用户通过了身份验证过程并存储我从 Coinbase 收到的数据。另外,我确实检查了是否设置了 $_GET['code']
,所以代码的两部分是分开的(我不是不小心再次将 $_GET['userid']
设置为 cookie)。
示例网址:
脚本位置: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 浏览器(即使在应用程序中 webviews 使用相同的引擎?!)。
如有任何帮助,我们将不胜感激!
域和协议 http / https
相同吗? http://example.com
和 https://example.com
的 Cookie 可能不同。
还要注意子域,可能 sub.example.com
cookie 在 example.com
上不可见。
你应该检查一下(我想你做过,但如果没有,那就去做),如果你在 Safari 中启用了 cookie :)
我有一些代码设置了一个 $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']
,它会显示用户标识。到目前为止,一切都很好。
重定向到 Coinbase OAuth 页面,用户必须在该页面上登录并允许我的网站访问他们的钱包。处理完成后,Coinbase 将用户重定向到 $redirecturi
,该页面与设置的 cookie 代码所在的页面相同。
然后我使用 $_COOKIE['userid']
来确定哪个用户通过了身份验证过程并存储我从 Coinbase 收到的数据。另外,我确实检查了是否设置了 $_GET['code']
,所以代码的两部分是分开的(我不是不小心再次将 $_GET['userid']
设置为 cookie)。
示例网址:
脚本位置: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 浏览器(即使在应用程序中 webviews 使用相同的引擎?!)。
如有任何帮助,我们将不胜感激!
域和协议 http / https
相同吗? http://example.com
和 https://example.com
的 Cookie 可能不同。
还要注意子域,可能 sub.example.com
cookie 在 example.com
上不可见。
你应该检查一下(我想你做过,但如果没有,那就去做),如果你在 Safari 中启用了 cookie :)