【发布时间】:2017-04-21 15:17:39
【问题描述】:
我已通过 Google 的 OAuth2 授权了多个帐户。如何获取我已授权的帐户列表?我希望能够撤消访问权限。
为了更清楚,我多次检查 OAuth2 流程,每次都选择不同的帐户。然后,我获得访问/刷新令牌并将其保存到我的数据库中。通过这样做,我注意到我仍然可以访问与最新帐户无关的资源,以及与先前授权帐户相关的资源。我希望能够列出并允许我的用户撤销对这些帐户的访问权限。
【问题讨论】:
-
当您说“我获得访问/刷新令牌并将其保存到我的数据库”时,您是否保存了每个刷新令牌?还是您只保存一些而丢弃其他?您的问题暗示后者,但我不太明白您为什么会请求授权然后不保存令牌。
-
@pinoyyid 每个用户都有自己的令牌。每当他执行 OAuth2 身份验证时,新令牌都会覆盖现有令牌。我很困惑,因为某些资源似乎可以通过多个令牌访问,尽管它不应该是。我不确定这是我的问题还是 API(GMB API)是这样设计的。我也在这里发帖:en.advertisercommunity.com/t5/Google-My-Business-API/…
-
您应该澄清“令牌”的含义。在 Google Oauth 中有 Refresh Tokens 和 Access Tokens。它们有不同的用途和特点。我可以建议您编辑您的问题以具体说明您要保存哪些令牌。还要澄清“用户”和“帐户”的含义。在 Google 中,用户 = 帐户,但您似乎是在说一个用户拥有多个帐户。同样,如果您可以在问题中添加更多信息,这将很有帮助,以便清楚您在问什么。
-
在我的例子中,我使用的是 PHP 库,我传入包含两个标记的数组。我不确定这对访问权限有何影响。至于用户,我的意思是我的应用程序用户。
标签: php oauth google-api google-oauth google-api-php-client