Google 驱动器 API 从 Web 浏览器访问凭据的应用程序数据(Javascript)

Google Drive API Application data accessing credentials from Web browser(Javascript)

我正在尝试从 Google 控制台获取凭据,以通过 Web browser(Javascript) 选项访问我的应用程序驱动器数据(以便稍后使用选择器 API)。但是当我 select 选项应用程序数据(访问属于您自己的应用程序的数据)时,我收到消息:

Application data cannot be accessed securely from a web browser. Please consider selecting another platform.

谁能解释为什么它不安全,我如何使用 Web 浏览器访问我的应用程序数据,也许应该选择不同的凭据?

谢谢。

Drive's Application Data 指南上找到这个。

To be able to use your Application Data folder, request access to the following scope:

https://www.googleapis.com/auth/drive.appdata

如果您在 Working with the Application Data folder 上阅读更多内容,它也可能会有所帮助。希望对您有所帮助。

您可以通过三种可能的方式访问您的 Google 云端硬盘数据:

  • 通过 OAuth 的浏览器:向用户打开一个弹出窗口,他登录 his/her Google 帐户并获取访问令牌。您在向驱动器 api.
  • 发出的每个请求中将此令牌作为参数键传递
  • 浏览器通过api键:不需要登录,Google需要这个键只是为了知道哪个应用程序正在使用他们的服务。这是最简单的选项,当您没有服务器端应用程序并且只需要访问 public 数据时,您可以使用它。您无法通过此方法访问任何私人文件。
  • 服务器端:您使用私钥进行身份验证。对驱动器 api 的所有请求必须仅在后端进行,在 javascript 代码中共享您的密钥是不安全的。

我想你正在尝试第二种选择。我遇到了同样的问题,当你逐步完成它时,它说它对驱动器来说是不安全的,我不明白,因为你会共享一个 public 密钥并且只能访问public仅可用文件。

要生成此密钥,您可以 https://console.developers.google.com/apis/credentials 单击 "create creadential" 和 select "API key"。

请记住,api 密钥对执行任何需要特殊权限的操作毫无用处,您唯一可以使用它执行的操作是读取 public files/folders。

现在,如果这不是您需要的第二个选项,如果您需要在浏览器中访问应用程序的私有数据。由于它所说的确切原因,这是不可能的,它不安全。密钥在您发出的每个请求中都是可见的,有人很容易窃取您的密钥并对您的云端硬盘帐户做任何 he/she 想做的事。

但是,如果您需要在浏览器中访问私有内容,我想您有一个登录系统,如果没有,则没有理由将其在 Google Drive 中设为私有(无论如何任何人都可以访问) .如果您有登录系统,则必须有服务器端应用程序。在这种情况下,正确的做法是将所有对云端硬盘 api 的调用移至后端,并使用私钥(上一个列表中的第三个选项)进行身份验证。