我是一名python初学者,我想创建一个基本的Google任务客户端。它将是一个原生应用程序。我无法得到的是如何保持“客户机密”实际上是秘密的,因为它将包含在程序代码中。
我搜索并发现了一篇帖子,引用谷歌论坛的帖子,并且基本上建议将这件事放弃。
我花了好几个小时试图得到这个东西,但是,我现在没有回答。所以,我有两个问题要问:
答案 0 :(得分:4)
我假设你在谈论OAuth。
是的,你嵌入了这个秘密 - 但不,这不是真正的秘密;在这里看到另一篇文章:OAuth - embedding client secret in your application?。
谷歌的文档实际上说的是同样的事情;来自:https://developers.google.com/accounts/docs/OAuth2#installed
注册期间获取的client_id和client_secret嵌入在应用程序的源代码中。在这种情况下,client_secret显然不被视为秘密。
尝试保护它没有任何意义 - 它必须通过电汇才能到达谷歌,任何{{}}等人都可以用纯文本观看。
关于影响:我认为客户秘密背后的想法是保护客户供应商(就是你)。从理论上讲,如果我知道你的客户密钥和秘密,我可以建立一个恶意的网站/客户端,允许用户合法登录,然后删除他们的所有任务,看起来你应该负责。这对于使用Web服务进行防御可能是有意义的,但对于已安装的客户端,用户可能会从某个地方(应用程序商店,网站等)下载它,希望确保它是合法的。