【发布时间】:2011-11-20 17:34:42
【问题描述】:
根据文档,我正在实施 LinkedIn JavaScript to REST token exchange,并且有一个启用 SSL 的页面供会员登录,该页面将他们的 oauth 令牌存储在安全的“凭据”cookie 中。然后我尝试通过 jQuery $.post() 将这些 cookie 传递给 PHP 页面:
$.post('https://' + document.domain + '/exchange.php', function(data) {
alert(data);
});
当我检查通过 Firebug 发送的数据时,我可以在 jQuery POST 的标题中看到以下内容:
Cookie: __utma=xxxx; __utmc=xxxx; __utmz=xxxx; linkedin_oauth_YYYY=yyyy; PHPSESSID=xxxx; __utmb=xxxx
然而,在 exchange.php 页面上,通过 print_r($_COOKIE); 只暴露了非安全 cookie(接收页面只能看到 Google Analytics 和 PHP 会话 cookie):
Array
(
[__utma] => xxxx
[__utmc] => xxxx
[__utmz] => xxxx
[PHPSESSID] => xxxx
[__utmb] => xxxx
)
任何想法我做错了什么?我正在使用 SSL 发布到同一个域,但 exchange.php 脚本无法使用安全 cookie。
更新:
我现在也在 exchange.php 页面上回显 $_SERVER 值,有趣的是我得到以下信息:
Array
(
[HTTPS] => on
[HTTP_COOKIE] => __utma=xxxx; __utmc=xxxx; __utmz=xxxx; linkedin_oauth_YYYY=yyyy; PHPSESSID=xxxx; __utmb=xxxx
)
所以 cookie 被传递了,但没有在 $_COOKIE 变量中设置?仅供参考,运行 PHP 5.3.3。
【问题讨论】: