android - 即使删除应用程序,Google Drive Android API 也会返回成功
问题描述
我正在使用新的 Google Drive Android API。这是我从Google 的 android-samples repo复制的演示代码。
GoogleSignInAccount signInAccount = GoogleSignIn.getLastSignedInAccount(this);
if (signInAccount != null && signInAccount.getGrantedScopes().containsAll(requiredScopes)) {
initializeDriveClient(signInAccount);
}
else
{ ... }
我面临的问题是,即使我从云端硬盘中删除了该应用程序,getLastSignedInAccount()
仍然会返回帐户并且帐户上的操作(例如添加文件)仍然成功。我想返回GoogleSignInAccount
对象很好,但它不应该允许对其进行操作。我再次检查了云端硬盘,当 API 返回成功时没有添加任何文件(因为我已经取消了应用程序的链接)。这里出了什么问题?
是的,当我在我的设备上手动同步帐户时它起作用了。在这种情况下,虽然getLastSignedInAccount()
返回了对象,但操作确实失败了。
PS:我要求SCOPE_FILE
和SCOPE_APPFOLDER
范围。
解决方案
这看起来像所需的行为。
只有在同步之后,才会GoogleSignIn.getLastSignedInAccount(this)
知道,而不是在那之前。如您所见,此方法是非阻塞的。
作为一项改进,执行操作的 API 调用应返回类似403 UNAUTHORIZED
推荐阅读
- node.js - 用于在不同目录中编译的 TypeScript API
- node.js - Scss/Sass webpack/项目设置不工作
- jquery - 不可能的?想通过电子邮件动态更改我域上的 iframe 源
- ios - 从 Firebase 快照保存/检索数据
- elixir - 可以使用宏为所有 Ecto 模型创建默认的新函数吗?
- c# - 转换 IEnumerable 的最快方法
列出 在 C# 中 - typescript - “...”类型的参数不可分配给“...”类型的参数 TS 2345
- matlab - 在 Matlab 命令窗口中将 html 链接/锚点打印到路径中带有空格的文件
- c++ - 访问基本类型数组成员(Int-to-Type 习惯用法)
- serial-port - 如何从 USB 设备向 DJI SDK 发送数据?