0

当用户访问我的页面(类似于 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 表,并在授权后通过查询检索它)但它并不健壮,坦率地说它会很烂!

4

1 回答 1

0

state当用户授权访问时,您可以向用户发送参数,如OAuth 2 规范中所述,该参数将随用户一起返回。

例如https://accounts.google.com/o/oauth2/auth?state=xyz123&scrope=https://www.googleapis.com/auth/plus.me...

于 2011-11-16T02:44:26.750 回答