【问题标题】:How can I get the token and simultaneously hide api credentials for google drive?如何获取令牌并同时隐藏谷歌驱动器的 api 凭据?
【发布时间】:2020-07-02 15:45:20
【问题描述】:

我正在编写一个 google drive 桌面应用程序,并且我正在使用 OAuth 2 来获取凭据。我可以通过阅读而不是更改文件来获得信誉。因为它是一个桌面应用程序,所以没有站点。它是用https://developers.google.com/identity/protocols/oauth2/native-app 编写的,我需要“提供本地重定向 URI 来处理来自 Google 授权服务器的响应”。那么,客户端也应该是服务器并在本地侦听某个端口吗?如果我想验证应用程序,我需要提供授权域和其他东西,但它又是一个桌面应用程序。或者也许有一种方法允许用户使用该应用程序,但在同意屏幕上会显示警告,例如用于开发目的。 另外如何隐藏我用来获取令牌的凭据?如果我使用凭据发布应用程序,每个人都可以窃取并使用它们

【问题讨论】:

  • 您好@photon,如果您有桌面应用程序,您需要创建web app 类型的凭据,然后提供适当的重定向URI。这对你的情况有用吗?干杯!
  • 它会起作用,但我不想分享我的凭据。否则用户将不得不生成自己的,这对他们来说不方便
  • 您好@photon,我不想分享我的凭据是什么意思?当您使用 OAuth 2.0 访问云端硬盘时,您是唯一拥有凭据的人。该应用程序的用户必须授权相关应用程序。你介意提供更多细节吗?你到底想达到什么目的?干杯!
  • 感谢您的回答,我只是想分享应用程序。例如,在windows中,你没有下载Google Drive应用程序,然后去console.cloud.google.com,创建一个应用程序,为应用程序创建凭据等等。您只是在使用您的电子邮件和密码。我只是不知道该怎么做
  • 你好@photon,所以你想开发一个桌面驱动应用程序,以后你会分享吗?但是你打算如何分享这个应用程序?此外,据我了解,您希望有一个登录过程。但同样,这与为 您的 应用程序生成的凭据无关。当用户“登录”到您的应用程序时,他们必须授权该应用程序并使用他们自己的凭据来访问该应用程序。那么,您介意提供更多关于您计划如何确切开发应用的详细信息吗?干杯!

标签: oauth-2.0 google-drive-api


【解决方案1】:

为了开发将使用 Drive API 的桌面应用程序,您必须使用 web app 类型的凭据,稍后您将为其提供适当的 redirect URI

通过在您的应用程序中使用 OAuth 2.0,您是唯一有权访问该应用程序凭据的人 - 除非您共享这些凭据。

根据Google OAuth 2.0 documentation

您首先从 Google API Console 获取 OAuth 2.0 客户端凭据。然后,您的客户端应用程序从 Google Authorization Server 请求访问令牌,从响应中提取令牌,并将令牌发送到您要访问的 Google API

对于登录过程,当用户登录到您的应用程序时,他们将使用自己的自己的凭据,然后他们必须授权您构建的应用程序才能能够使用 Drive API

参考

【讨论】:

  • 我理解,这样的应用程序的可用性会受到影响。例如,当我安装 Dropbox 时,它会在浏览器中打开一个页面,我在其中写下我的登录名和密码。之后我使用它。在这里,用户应该转到 Google API 控制台,创建应用程序、同意页面、凭据,然后返回并向应用程序显示凭据,应用程序将根据该凭据创建令牌。实际上有“PasswordCredentialsToken”,我最终可能会使用它
猜你喜欢
  • 2014-03-31
  • 1970-01-01
  • 2012-04-24
  • 2015-07-09
  • 1970-01-01
  • 1970-01-01
  • 2013-07-20
  • 1970-01-01
  • 2012-05-24
相关资源
最近更新 更多