1

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

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

4

1 回答 1

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 授权服务器会往返此参数,因此您的应用程序会收到它发送的相同值。可能的用途包括将用户重定向到站点中的正确资源、nonce 和跨站点请求伪造缓解。

于 2013-09-22T08:03:42.563 回答