3

根据Google Drive SDK 文档,您需要使用您的 Google 帐户注册您的自定义应用程序以获取client-id信息client-secret。然后,您可以使用这些为您的用户构建链接以获取访问/刷新令牌。

根据oAuth我读过的一些介绍性指南,客户机密信息在某些情况下应该保密,在某些情况下不应该保密。我正在用 Java 构建一个 Maven 插件,在这种情况下,您似乎很难将值保密。

是否可以将我的代码发布为开源代码,包括客户机密信息?或者这对我来说是否意味着潜在的风险?如果不行,那么我怎么能允许其他人使用插件而不泄露客户端秘密值?

4

3 回答 3

3

请参阅 Google 关于OAuth 2.0 for Installed Applications的文档:

Google OAuth 2.0 端点支持安装在设备(例如移动设备、Mac、PC)上的应用程序。这些应用程序被分发到各个机器上,并且假定这些应用程序不能保密。

泄露秘密应该没问题。唯一的风险是一些流氓用户“烧掉”了你所有的配额。如果出现此问题,每用户配额可能有助于缓解此问题。

于 2013-09-16T13:37:14.440 回答
2

这取决于你要发布什么。如果您正在创建一个其他人将用来构建应用程序的库,那么不,他们应该为他们自己的应用程序注册并使用他们自己的客户端密码。

如果您有一个要发布的应用程序,并且因为您是一个好公民而想发布源代码,我也会将客户端机密从发布的源代码中删除;想要自己的应用程序版本的人应该注册自己的客户。

当然,任何编译到移动应用程序中的东西都不再是秘密,因为移动设备无法保守秘密。

于 2013-09-16T15:54:51.853 回答
1

发布不带令牌的代码,并解释使用您的代码的人如何获得自己的代码。否则人们可能会滥用你的或复制它们用于其他项目。否则,您可以销毁您的配额,并且如果它被复制到其他应用程序中,这些将在权限对话框弹出给用户时显示为您的(使用您的应用程序名称和徽标)

于 2013-09-16T15:03:48.803 回答