【问题标题】:Google Drive Android API returns success even after removing the app即使在删除应用程序后,Google Drive Android API 也会返回成功
【发布时间】:2018-05-25 19:46:22
【问题描述】:

我正在使用新的 Google Drive Android API。这是我从Google's android-samples repo复制的演示代码。

GoogleSignInAccount signInAccount = GoogleSignIn.getLastSignedInAccount(this);
if (signInAccount != null && signInAccount.getGrantedScopes().containsAll(requiredScopes)) {
            initializeDriveClient(signInAccount);
}
else 
{ ... }

我面临的问题是,即使我从云端硬盘中删除了应用程序,getLastSignedInAccount() 仍然会返回帐户并且帐户上的操作(例如添加文件)仍然成功。我想返回 GoogleSignInAccount 对象很好,但它不应该允许对其进行操作。我再次检查了云端硬盘,当 API 返回成功时没有添加任何文件(因为我已经取消了应用程序的链接)。这里出了什么问题?

是的,当我在我的设备上手动同步帐户时,它起作用了。在这种情况下,虽然getLastSignedInAccount() 返回了对象,但操作确实失败了。

PS:我正在请求 SCOPE_FILESCOPE_APPFOLDER 范围。

【问题讨论】:

  • 你能显示一些代码吗?
  • 请澄清您所说的“即使我从云端硬盘中删除该应用程序”是什么意思,我假设您的意思是您正在撤消应用程序在 Google 云端硬盘用户界面中的访问权限?另外请澄清如果您关闭当前活动并再次打开该行为是否仍然存在,以及如果您重新启动应用程序是否仍然存在。如果您有基于 Drive 示例之一的离散 repo 步骤,这也会有所帮助。

标签: android authorization google-play-services google-drive-android-api


【解决方案1】:

这看起来像期望的行为。

只有在同步之后,GoogleSignIn.getLastSignedInAccount(this) 才会知道,而不是在那之前。可以看到,这个方法是非阻塞的。

作为一项改进,执行操作的 API 调用应返回类似 403 UNAUTHORIZED 的内容

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-05
    相关资源
    最近更新 更多