Oauth - 如何为同一域的不同页面添加一个重定向URI?

时间:2013-06-10 05:04:35

标签: php oauth

在我的项目中,我有三个页面,我将oAuth请求发送到谷歌。我想在谷歌管理控制台提供重定向URI参数。由于我有三个页面,我需要添加三个回调URI。是否有可能只添加一个适用于三页的callbackURI。

由于项目流程要求,我不想在一个页面中发出请求,然后在其中包含其他页面。

1 个答案:

答案 0 :(得分:1)

Google API PHP客户端有一个函数setState(),您可以在其中设置任何数据,例如唯一字符串,Google会在授权请求后使用令牌将其返回。然后,您的应用程序将使用此字符串并相应地重定向您的用户。

在包含三个页面的情况下,假设每个页面的唯一ID为1,2和3.当用户从第1页进行身份验证时,您可以执行以下操作。

$state = '1';
$client->setState($state);
$authUrl = $client->createAuthUrl();

然后,在Google的回复中,您将获得state参数,您的应用会识别出1属于第1页并重定向用户。

https://developers.google.com/accounts/docs/OAuth2WebServer#formingtheurl

  

表示可能对您的应用程序有用的任何状态   收到回复。 Google授权服务器往返   此参数,因此您的应用程序将收到与其发送的值相同的值。   可能的用途包括将用户重定向到正确的资源   您的网站,随机数和跨站点请求伪造缓解措施。