当用户访问我的页面时(类似于Google Plus API PHP starter),我的应用程序需要授权才能访问用户的配置文件。我设置的回调URI是页面本身。最初,一切工作完美:用户返回到我的页面成功授权($authUrl没有设置,而$me和$activities设置)。
然而,现在我需要将一个名为'id'的参数从授权之前传递到之后,这似乎把一切都搞砸了:-(
)如果在发送授权请求时存在会话变量或cookie,则用户在没有授权的情况下返回我的页面(设置$authUrl,而$me和$activities为NULL)。
更奇怪的是:在使用 之后setcookie (storedid, $ _GET [' id '],时间()+ 3600,'/',' .mydomain.com ');
用户返回未经授权),而与:
setcookie (storedid, $ _GET [' id '],美元到期,'/anysubfolder/', ' .mydomain.com ');
它工作得很好!此外,在某些地方,我犯了一个错字,$_GET['id']为NULL,即使cookie在'/'路径中,授权也成功了!
是否有一种方法可以将参数从授权前传递到授权后?
我开始考虑一些疯狂的事情(将'id'写入SQL表,以及用户的IP地址,并在授权后使用查询检索它),但它并不健壮,坦率地说,它会很糟糕!
当用户获得OAuth 2规范中描述的授权访问时,您可以向用户发送state
参数,该参数将与用户一起返回。
例如https://accounts.google.com/o/oauth2/auth?state=xyz123&scrope=https://www.googleapis.com/auth/plus.me...