setRedirectUri有什么作用?

时间:2018-07-05 09:39:40

标签: php oauth google-api google-oauth2

我尝试将Google API php库PHP用于oauth,其官方代码如下:

$client = new Google_Client();
$client->setAuthConfig('client_secrets.json');
$client->setAccessType("offline");        // offline access
$client->setIncludeGrantedScopes(true);   // incremental auth
$client->addScope(Google_Service_Drive::DRIVE_METADATA_READONLY);
$client->setRedirectUri('http://' . $_SERVER['HTTP_HOST'] .'/oauth2callback.php');

但是我发现下载的'client_secrets.json'已经包含redirectURI,并且我发现应用程序中的oauth可以在不调用$ client-> setRedirectUri的情况下工作:

$client = new Google_Client();
$client->setAuthConfig('client_secrets.json');
$client->setAccessType("offline");        // offline access
$client->setIncludeGrantedScopes(true);   // incremental auth
$client->addScope(Google_Service_Drive::DRIVE_METADATA_READONLY);

所以我的问题是,呼叫

有什么用?
$client->setRedirectUri

1 个答案:

答案 0 :(得分:0)

Google的OAuth 2.0服务器对用户进行身份验证,并获得用户的同意,您的应用才能访问所请求的范围。使用您指定的重定向URL将响应发送回您的应用程序。

$client->setRedirectUri('http://' . $_SERVER['HTTP_HOST'] . '/oauth2callback.php');

您网站oauth2callback.php上的页面必须配置为处理来自oauth服务器的响应。