要使用google drive api,我必须使用OAuth2.0进行身份验证.我对此有一些疑问.
客户端ID和客户端密钥用于标识我的应用程序是什么.但是如果它是客户端应用程序,它们必须是硬编码的.因此,每个人都可以反编译我的应用程序并从源代码中提取它们.这是否意味着一个糟糕的应用程序可以通过使用好的应用程序的客户端ID和秘密伪装成一个好的应用程序?所以用户会显示一个屏幕,要求授予一个好应用程序的权限,即使它实际上是由一个糟糕的应用程序询问?如果是,我该怎么办?或者实际上我不应该担心这个?
在移动应用程序中,我们可以将webview嵌入到我们的应用程序中.并且很容易在webview中提取密码字段,因为请求许可的应用程序实际上是"浏览器".那么,移动应用程序中的OAuth没有客户端应用程序无法访问服务提供商的用户凭据的好处?
之前已经问过类似的问题 ( 1 , 2 ),但没有明确回答:
它是安全的存储client id和client secret一个获得证书Installed application -> Other的谷歌API的命令行应用程序的分布式的源代码将被分配?或者,才有可能访问用户帐户或数据,而不在access_token用户同意授权?
Google API文档指定..:
.. 生成客户端 ID,在某些情况下,生成客户端机密,您将其嵌入到应用程序的源代码中。(在这种情况下,客户端机密显然不被视为机密。)
从其他文档中可以明显看出,这不是最佳实践:client_secret服务甚至不应该提供它,但目前它是oauth2和googleapiclient库(对于 Python)以及 Google 服务可能需要的。
该应用程序将使用oauth2基于这些官方示例。
非常感谢确认这是否真正安全的参考资料、良好的解释或文档。