Google Auth令牌过期,无法使用PHP API Auth客户端刷新?

时间:2014-07-29 22:44:53

标签: php oauth-2.0 google-oauth google-api-php-client

我使用的是Google PHP API library

中的最新内容

在iOS上启动身份验证 - >获取代码 - >发送到服务器 - >获取令牌一切正常。但我将用户本地的令牌存储在服务器上,代表iOS客户端离线访问。

注意:$ googleToken也包含刷新令牌。

$client = new Google_Client();
$oauth2 = new Google_Service_Oauth2($client);
$client->setApplicationName('MyServer');
$client->setClientId($google_config["clientId"]);
$client->setClientSecret($google_config["clientSecret"]);
$client->setRedirectUri("");
$client->setDeveloperKey($google_config["developerKey"]);

$googleToken = getGoogleToken($user);  //locally stored google token for user
$client->setAccessToken($googleToken['token']);
$access_token = $client->getAccessToken();
StoreToken($access_token);

再次存储access_token。当它过期但我的电话开始失败时:

  

"错误" :" invalid_request"," error_description" :"客户必须   指定client_id或client_assertion,而不是"

我尝试了setRefreshToken和其他所有组合,仍然无法让它发挥作用。 我究竟做错了什么?我确实尝试将状态设置为脱机,但不确定它是否重要,因为我将刷新令牌作为初始令牌的一部分。

1 个答案:

答案 0 :(得分:2)

哇哇......弄清楚了。这实际上是我自己的问题。 $ google_config是配置文件中的全局定义!我在函数中缺少global $google_config;!结果,client_id和secret_id都丢失了 - 虽然错误信息至少可以说是错误的!

相关问题