3

使用新的 Google Play 服务对帐户进行身份验证时,您首先使用 AccountPicker 允许用户选择一个帐户。如果用户之前没有通过您的应用程序进行身份验证,UserRecoverableAuthException则会抛出一个,让您有意显示“允许访问”页面。您只需要允许访问一次。但是,出于测试目的,我每次都需要查看“允许访问”页面。

那么,有谁知道如何清除 Google Play 服务的权限?或者其他一些每次都会显示允许访问页面的方法?

4

1 回答 1

2

在您的 Google 帐户设置中,有一种方法可以设置应用程序专用密码。注册两步验证,然后您可以创建它们。要暂时撤销权限,您可以删除或更改密码: http: //support.google.com/accounts/bin/answer.py ?hl=en&answer=1070455

否则,请暂时将密码更改为您的整个 Google 帐户。

不幸的是,我认为没有一种简单的编程方式可以做到这一点。用户/管理员无法撤销 Google 帐户对已安装应用程序的访问权限似乎是一个相当严重的安全漏洞。据我所知,Google 正在从服务器获取身份验证信息,如果该操作中的某些内容失败,它会抛出UserRecoverableAuthException. 那是您通常从 UserException.getIntent() 触发 Intent 的时候,它会通过以下请求联系服务器:

scope:oauth2:https://www.googleapis.com/auth/drive.readonly[
    account:<your_account>@gmail.com,
    scope:oauth2:https://www.googleapis.com/auth/drive.readonly,
    extrashash:<some_number>]

现在,我没有找到指示服务器撤销上面请求的 Auth Scope 的文档。甚至可能都不可能。但是,您可以尝试捕获 UserException.getIntent() 返回的 Intent 中的值,并在用户希望使用其 Google 帐户登录时使用它来创建您启动的新 Intent。但是,服务器可能会意识到应用程序已经过身份验证,然后在没有提示的情况下发送给您。

于 2012-10-28T18:06:15.107 回答