Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 获取Google OAuth2授权帐户_Php_Oauth_Google Api_Google Oauth_Google Api Php Client - Fatal编程技术网

Php 获取Google OAuth2授权帐户

Php 获取Google OAuth2授权帐户,php,oauth,google-api,google-oauth,google-api-php-client,Php,Oauth,Google Api,Google Oauth,Google Api Php Client,我已经通过谷歌的OAuth2授权了多个账户。如何获取我已授权的帐户列表?我希望能够撤销访问权限 为了更清楚,我多次检查OAuth2流,每次都选择不同的帐户。然后,我获取访问/刷新令牌并将其保存到数据库中。通过这样做,我注意到我仍然可以访问与最新帐户无关的资源,但也可以访问与以前授权的帐户有关的资源。我希望能够列出并允许我的用户撤销对这些帐户的访问。无法获得已验证应用程序的用户列表。我也有这个问题,因为我有一些用户仍然在使用我的应用程序的非常旧的版本,我想通知他们应该升级,但我不能,因为我没有与他

我已经通过谷歌的OAuth2授权了多个账户。如何获取我已授权的帐户列表?我希望能够撤销访问权限


为了更清楚,我多次检查OAuth2流,每次都选择不同的帐户。然后,我获取访问/刷新令牌并将其保存到数据库中。通过这样做,我注意到我仍然可以访问与最新帐户无关的资源,但也可以访问与以前授权的帐户有关的资源。我希望能够列出并允许我的用户撤销对这些帐户的访问。

无法获得已验证应用程序的用户列表。我也有这个问题,因为我有一些用户仍然在使用我的应用程序的非常旧的版本,我想通知他们应该升级,但我不能,因为我没有与他们联系

取消已知用户的访问:

您的应用程序可以拥有您想要授权的任意多个用户。刷新令牌允许您访问每个用户的数据。访问将一直保留,直到用户撤销它或刷新令牌已六个月未使用为止

您可以通过以下方式以编程方式撤销它:

尝试使用:

$client->revokeToken(); 

这将撤销用户提供的旧访问权限。当然,您必须将旧的刷新令牌加载到客户端

无法获取已验证您的应用程序的用户列表。我也有这个问题,因为我有一些用户仍然在使用我的应用程序的非常旧的版本,我想通知他们应该升级,但我不能,因为我没有与他们联系

取消已知用户的访问:

您的应用程序可以拥有您想要授权的任意多个用户。刷新令牌允许您访问每个用户的数据。访问将一直保留,直到用户撤销它或刷新令牌已六个月未使用为止

您可以通过以下方式以编程方式撤销它:

尝试使用:

$client->revokeToken(); 

这将撤销用户提供的旧访问权限。当然,您必须将旧的刷新令牌加载到客户端

你的回答似乎表明我只能撤销整个代币。为了澄清我的问题:我的应用程序中的一个用户(持有一个令牌)可以使用多个Google帐户通过OAuth2,从而“授权”使用多个帐户访问各种服务。但我希望能够有选择地“取消授权”一些与此令牌相关的谷歌帐户。这是不可能的吗?当用户验证你的应用程序时,它是到一个单一的谷歌帐户。每个google帐户都将分配一个刷新令牌(对于单个用户,实际上可能有几个未完成的刷新令牌)。您需要刷新令牌来撤销它。不是真正的谷歌账户。不,除非您跟踪不同google帐户的刷新令牌,否则您想做的可能是不可能的。要清楚,他的令牌与单个google帐户绑定。您的回答似乎表明我只能撤销整个令牌。为了澄清我的问题:我的应用程序中的一个用户(持有一个令牌)可以使用多个Google帐户通过OAuth2,从而“授权”使用多个帐户访问各种服务。但我希望能够有选择地“取消授权”一些与此令牌相关的谷歌帐户。这是不可能的吗?当用户验证你的应用程序时,它是到一个单一的谷歌帐户。每个google帐户都将分配一个刷新令牌(对于单个用户,实际上可能有几个未完成的刷新令牌)。您需要刷新令牌来撤销它。不是真正的谷歌账户。不,除非您跟踪不同google帐户的刷新令牌,否则您想做的可能是不可能的。要清楚,他的令牌与单个google帐户绑定。当您说“我获取访问/刷新令牌并将其保存到我的数据库”时,您是否保存了每个刷新令牌?或者你只是保存了一些,丢弃了其他的?您的问题暗示了后者,但我不太明白为什么您会请求授权,然后不保存令牌。@pinoyyid每个用户都有自己的令牌。每当他执行OAuth2身份验证时,新令牌就会覆盖现有令牌。我很困惑,因为有些资源似乎可以通过多个令牌访问,尽管它不应该是这样的。我不确定这是我的问题还是API(GMB API)就是这样设计的。我也在这里发布了:你应该澄清你所说的“代币”是什么意思。在GoogleOAuth中有刷新令牌和访问令牌。它们有不同的目的和特点。我可以建议您编辑您的问题,以明确您正在保存哪些代币。还要澄清“用户”和“帐户”的含义。在Google中,user=account,但您似乎在说一个用户有多个帐户。同样,如果您可以在问题中添加更多信息,以便清楚地了解您的问题,这将非常有帮助。我不确定这对访问权有何影响。至于用户,我指的是我的应用程序用户。当你说“我获取访问/刷新令牌并将其保存到我的数据库”时,你是否保存了每个刷新令牌?或者你只是保存了一些,丢弃了其他的?您的问题暗示了后者,但我不太明白为什么您会请求授权,然后不保存令牌。@pinoyyid每个用户都有自己的令牌。每当他执行OAuth2身份验证时,新令牌就会覆盖现有令牌。我很困惑,因为有些资源似乎可以通过多个令牌访问,尽管它不应该是这样的。我不确定这是我的问题还是API(GMB API)就是这样设计的。我也在这里发布了:你应该澄清你所说的“代币”是什么意思。在GoogleOAuth中,有刷新令牌,还有