使用Google服务帐户时我们是否需要刷新令牌

时间:2017-02-22 02:37:46

标签: php google-api google-oauth google-api-php-client service-accounts

我有一个谷歌服务帐户,我按照以下方式进行授权

$client = new Google_Client();
$client->setAuthConfig('service_account.json');
$client->useApplicationDefaultCredentials();
$client->addScope('https://www.googleapis.com/auth/admin.directory.user');
$email="admin@xxxxx.com";
$client->setSubject($email);

然后我创建一个服务对象,如下所示

$dir = new Google_Service_Directory($client)

现在,我已经能够像创建新用户等一样操作此对象而没有任何问题。我想知道是否需要在某个阶段刷新令牌。你能帮我弄清楚是否有必要,如果有的话,如何检查这个条件并得到一个新的令牌?

1 个答案:

答案 0 :(得分:3)

服务帐户已获得预授权。您的身份验证将链接回.p12文件或json文件中的某些私钥。如果你愿意,这些键在某种意义上是刷新令牌。只要您拥有这些密钥,您就可以访问Google。

对于Oauth2,当Google同意您的应用程序访问其数据时,您将获得一个刷新令牌,以便您访问其数据。

存在差异,但在某种意义上,刷新令牌和private_key会执行相同的操作。它们允许您访问已被授予访问权限的数据。在服务帐户的情况下,在Oauth2的情况下,其预先授权由用户授予。

您可以使用您正在使用的代码,无需担心刷新令牌或访问令牌。客户端库应该为您处理所有事情。