Google Drive SDK - 客户端密码 - 它有多秘密?

时间:2013-09-16 12:57:17

标签: java maven oauth google-drive-api google-oauth

根据the Google Drive SDK documentation,您需要在自己的Google帐户中注册自定义应用,才能获得client-idclient-secret信息。然后,您可以使用这些链接为您的用户构建链接以获取访问/刷新令牌。

根据我所读到的oAuth的一些介绍性指南,客户机密信息应该在某些情况下秘密保存,而在某些情况下则不应该保密。我正在使用Java构建一个Maven插件,在这种情况下,你似乎很难保密。

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

3 个答案:

答案 0 :(得分:3)

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

  

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

你应该好好释放这个秘密。唯一的风险是一些流氓用户“烧毁”你的所有配额。 Per-user quotas可能有助于缓解此问题。

答案 1 :(得分:2)

这取决于你发布的内容。如果您正在创建一个其他人将用于构建应用程序的库,那么不,他们应该注册&将自己的客户机密用于自己的应用程序。

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

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

答案 2 :(得分:1)

在没有令牌的情况下发布代码,并解释那些使用您的代码的人可以获得自己的代码。 否则,人们可能会滥用您的或将其复制用于其他项目。 否则,您可以刻录您的配额,如果它被复制到其他应用程序中,那么这些配置将显示为您的,只要权限对话框弹出给用户(带有您的应用程序名称和徽标)