"客户机密"那不是& t&开源

时间:2015-01-29 18:09:41

标签: google-drive-api google-oauth

根据the Google Drive documentation,应用程序需要一个所谓的“客户端密码”才能与Google Drive SDK进行交互 - 即使在客户端JavaScript应用程序的情况下,代码也是如此很明显,所有人都可以看到。 (当然,在任何其他客户端代码中它并不是那么安全,它只是为了找到“秘密”的更多工作......)

所以,嗯:

  1. 如何在应用程序中分发这些“秘密”?

  2. 有什么理由说这种逻辑不适用于开源计算机程序?

  3. BONUS:对这些应用程序使用基于用户的身份验证不是更有意义,而不假装将应用程序认证为特定应用程序吗?

1 个答案:

答案 0 :(得分:2)

虽然为使用Google服务的所有应用生成客户端密钥确实如此,但客户端机密从未被浏览器/ javascript应用程序使用。通常是一个浏览器应用程序(我使用短语" browser-app"而不是" Javascript app"因为服务器node.js应用程序也使用Javascript)将使用gapi进行身份验证和授权这里描述的图书馆https://developers.google.com/api-client-library/javascript/reference/referencedocs#gapiauthauthorize。如您所见,Client Secret永远不会被使用。

所以,选择你的问题......

  1. 不行,不要做,不需要,见上文。
  2. 见1
  3. 您正在对用户进行身份验证以及对应用进行身份验证。两者都需要,每个用于不同的目的。对于浏览器应用程序,使用客户端ID的组合完成身份验证,该客户端ID根据http源(开发人员先前已向Google声明)进行验证。一旦应用程序通过身份验证,我们就可以通过将OAuth授权机制与现有的Google会话结合使用来继续对用户进行身份验证。
相关问题