"client secrets" 不是开源的
"client secrets" that aren't & open source
根据 the Google Drive documentation,应用程序需要所谓的 "client secret" 才能与 Google Drive SDK 交互——即使在客户端的情况下-side JavaScript app,代码一目了然。 (当然,它在任何其他客户端代码中并没有那么安全,它只是需要更多的工作来找到 "secret"...)
所以,嗯:
如何在应用程序内部分发这些 "secrets"?
为什么这个逻辑不适用于开源计算机程序?
奖励:仅对此类应用程序使用基于用户的身份验证而不假装将应用程序作为特定应用程序进行身份验证是否更有意义?
虽然确实为所有使用 Google 服务的应用程序生成了客户端密码,但 browser/javascript 应用程序从未使用过客户端密码。通常浏览器应用程序(我使用短语 "browser-app" 而不是 "Javascript app" 因为服务器 node.js 应用程序也在使用 Javascript)将使用此处描述的 gapi 库进行身份验证和授权https://developers.google.com/api-client-library/javascript/reference/referencedocs#gapiauthauthorize。如您所见,从未使用过 Client Secret。
所以,挑出你的问题...
- 不行,不要做,没必要,见上文。
- 见1
- 您将用户身份验证与应用程序身份验证混为一谈。两者都需要,每个都有不同的目的。在浏览器应用程序的情况下,身份验证是使用客户端 ID 的组合完成的,并根据 http 来源(开发人员先前已向 Google 声明)进行验证。一旦应用程序通过身份验证,我们就可以继续利用 OAuth 授权机制结合现有的 Google 会话来对用户进行身份验证。
根据 the Google Drive documentation,应用程序需要所谓的 "client secret" 才能与 Google Drive SDK 交互——即使在客户端的情况下-side JavaScript app,代码一目了然。 (当然,它在任何其他客户端代码中并没有那么安全,它只是需要更多的工作来找到 "secret"...)
所以,嗯:
如何在应用程序内部分发这些 "secrets"?
为什么这个逻辑不适用于开源计算机程序?
奖励:仅对此类应用程序使用基于用户的身份验证而不假装将应用程序作为特定应用程序进行身份验证是否更有意义?
虽然确实为所有使用 Google 服务的应用程序生成了客户端密码,但 browser/javascript 应用程序从未使用过客户端密码。通常浏览器应用程序(我使用短语 "browser-app" 而不是 "Javascript app" 因为服务器 node.js 应用程序也在使用 Javascript)将使用此处描述的 gapi 库进行身份验证和授权https://developers.google.com/api-client-library/javascript/reference/referencedocs#gapiauthauthorize。如您所见,从未使用过 Client Secret。
所以,挑出你的问题...
- 不行,不要做,没必要,见上文。
- 见1
- 您将用户身份验证与应用程序身份验证混为一谈。两者都需要,每个都有不同的目的。在浏览器应用程序的情况下,身份验证是使用客户端 ID 的组合完成的,并根据 http 来源(开发人员先前已向 Google 声明)进行验证。一旦应用程序通过身份验证,我们就可以继续利用 OAuth 授权机制结合现有的 Google 会话来对用户进行身份验证。