【问题标题】:Obtaining access_token from Google Drive API from Desktop application从桌面应用程序的 Google Drive API 获取 access_token
【发布时间】:2022-09-24 14:55:31
【问题描述】:

我正在创建一个桌面应用程序,它应该能够从 Google Drive 存储和下载日期。我在用Google.Apis.Drive.v3处理授权流程。我面临着如何以及在何处存储授权流程所需的client_secret 的问题。

此应用程序应该可供广大公众使用,因此每个用户都创建其凭据的想法是不可接受的。

我试过了:

  • 将 ClientId 和 ClientSecret 直接硬编码为有效的代码,但由于系统版本控制和程序反编译可能导致机密丢失,这并不理想。
  • 图书馆不支持阅读我阅读的有关 PKCE 的信息。

实现预期结果的其他选择是什么?

谢谢你的帮助, 安全

  • 这是什么类型的应用程序?网络?桌面?
  • 它是一个桌面应用程序。

标签: c# google-api-dotnet-client


【解决方案1】:

将 ClientId 和 ClientSecret 直接硬编码为有效的代码,但由于系统版本控制和程序反编译可能导致机密丢失,这并不理想。

我要冒昧地说你正在创建一个已安装的应用程序。您应该照常做,并将客户端 ID 和客户端密码编译到您的应用程序中。您不应该将这些检查到您的版本控制系统中,因此您需要将其设置为秘密作为构建脚本的一部分,以便仅在构建时添加。

至于它被反编译的问题,没有解决办法。在过去的十年里,我曾向谷歌询问过这个薮猫的时间。他们知道您的应用程序可能会被反编译,但实际上没有其他选择。

我的创意工作

薮猫几年前我有一个客户。我们所做的是,当用户安装应用程序时,它会调用我们服务器上的 api 端点,这将返回客户端密码。然后将其编码到一个文件中,然后进行哈希处理,这样它就不是明文,然后应用程序就会运行。这确实要求安装该应用程序的人有互联网连接才能从我们的服务器获取秘密。

【讨论】:

  • > 薮猫 几年前我有一个客户。我们所做的是,当用户安装应用程序时,它会调用我们服务器上的 api 端点,这将返回客户端密码。然后将其编码到一个文件中,然后进行哈希处理,这样它就不是明文,然后应用程序就会运行。这确实要求安装该应用程序的人有互联网连接才能从我们的服务器获取秘密。
猜你喜欢
  • 1970-01-01
  • 2012-05-19
  • 1970-01-01
  • 1970-01-01
  • 2012-01-19
  • 1970-01-01
  • 2013-08-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多