当用户访问我的页面(类似于 Google Plus API PHP starter)时,我的应用需要授权才能访问用户的个人资料。我设置的回调 URI 是页面本身。最初,一切都很顺利:用户成功授权返回我的页面($authUrl 未设置,而 $me 和 $activities 已设置)。
但是,现在我需要将一个名为“id”的参数从授权之前传递到授权之后,这似乎把一切都搞砸了:-(
如果发送授权请求时有会话变量或cookie,则用户在没有授权的情况下返回我的页面(设置了$authUrl,而$me 和$activities 为NULL)。
更奇怪的是:使用后
setcookie('storedid', $_GET['id'], time()+3600, '/', '.mydomain.com');
用户未经授权返回),同时:
setcookie('storedid', $_GET['id'], $expire, '/anysubfolder/', '.mydomain.com');
它完美无缺!另外,在某些时候我打错了,$_GET['id'] 是 NULL,即使 cookie 在 '/' 路径中,授权也是成功的!
有没有办法可以在授权之前到之后传递参数?
我开始考虑一些疯狂的事情(将“id”连同用户的 IP 地址一起写入 SQL 表,并在授权后通过查询检索它)但它并不健壮,坦率地说它会很烂!