在我的项目中,我有三个页面将我的 oAuth 请求发送到谷歌。我想在谷歌管理控制台提供重定向 URI 参数。由于我有三个页面,我需要添加三个回调 URI。我是否有可能只添加一个适用于三页的 callbackURI。
由于项目流程要求,我不想在一个页面中提出请求,然后在其中包含其他页面。
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 和跨站点请求伪造缓解。