invalid_grant:代码已被兑换为Google Oauth

时间:2016-05-06 20:15:00

标签: php google-oauth

我正在尝试授权我的应用程序读取用户的google驱动器,但一直遇到上述问题。这是我的代码:

session_start();

$client = new Google_Client();
$client->setClientId(CLIENT);
$client->setClientSecret(SECRET);
$client->setRedirectUri(REDIRECT);
$client->addScope(Google_Service_Drive::DRIVE_METADATA_READONLY);

if (! isset($_GET['code'])) {
  $auth_url = $client->createAuthUrl();
  header('Location: ' . filter_var($auth_url, FILTER_SANITIZE_URL));
} else {
  $client->authenticate($_GET['code']);
  $_SESSION['access_token'] = $client->getAccessToken();
  //$redirect_uri = 'http://'.$_SERVER['HTTP_HOST'];
  //header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL));
}

我知道我的申请已经收到了一个令牌,而且已经兑换了。我的问题是如何访问刷新令牌,并将其提供给应用程序?我还读过clearToken(context,token),这个技巧,但是我不知道在我的代码中使用什么上下文参数来实现它。

1 个答案:

答案 0 :(得分:0)

“收到一个令牌,它已被兑换” 你的意思是访问代码?

假设您请求离线访问,则兑换访问代码将返回刷新令牌,您应该在需要时安全存储。

如果您忘记存储刷新令牌,则需要撤消访问权限并重新开始。