【问题标题】:Google Drive Issue谷歌云端硬盘问题
【发布时间】:2017-01-04 21:22:31
【问题描述】:

我正在开发一个谷歌驱动器文件上传 Rest API。用户授予我的 google drive 应用程序的权限。现在我的应用程序中有一个登录-注销系统,因此用户可以将文件上传到不同的帐户。

从技术上讲,我在用户身份验证中获得了"refresh_token",我使用它为每个离线请求生成"access_token"。我已将'refresh_token' 存储在数据库中。当用户注销时,我将其从数据库中删除。

如果用户使用a@gmail.com 登录,则在上传一些文件后授予我的 google drive 应用程序和注销权限。该用户然后再次尝试使用相同的帐户登录,它不会生成“refresh_token”或请求应用程序权限,因为它已经由用户提供。

我想在注销时删除用户的应用权限。或者我想通过新的身份验证和权限获得新的"refresh_token"

请指导我解决这个问题。

提前谢谢你。

【问题讨论】:

  • 你可以撤销一个令牌developers.google.com/identity/protocols/… 或者你可以提示他们一个新的
  • @DalmTo 如何提示输入新的 refresh_token?请指导我,因为我是 google drive API 的新手。
  • 获得第一个刷新令牌的方式相同。您将不得不要求他们再次对您进行身份验证。

标签: php google-drive-api


【解决方案1】:

如何刷新令牌?

你会像使用 $client->refreshToken($refreshToken) 一样

if ($client->isAccessTokenExpired()) {
$refreshToken = $client->getRefreshToken();
$client->refreshToken($refreshToken);
$newAccessToken = $client->getAccessToken();
$newAccessToken['refresh_token'] = $refreshToken;
file_put_contents($credentialsPath, json_encode($newAccessToken));
}

尝试在 github 上的 google api php library 上检查样本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多