使用 google 服务帐户时是否需要刷新令牌

Do we need to refresh tokens when using a google service account

我有一个google服务帐号,我按如下方式进行授权

$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)

现在,我已经能够毫无问题地对该对象进行操作,例如创建新用户等。我想知道我是否需要在某个阶段刷新令牌。你能帮我弄清楚这是否有必要吗?如果有必要,如何检查此条件并获取新令牌?

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

就 OAuth2 而言,当 Google 用户同意您的应用程序访问他们的数据时,您将获得一个刷新令牌,允许您访问他们的数据。

有区别,但在某种意义上刷新令牌和 private_key 执行相同的操作。它们允许您访问您已被授予访问权限的数据。对于服务帐户,它是预授权的。对于 OAuth2,它是由用户授予的。

如您所见,您无需担心您正在使用的代码的刷新令牌或访问令牌。一切都应该由客户端库为您处理。