已安装的Python应用和Google客户端ID

时间:2012-08-29 09:40:06

标签: python oauth-2.0 google-tasks-api

我是一名python初学者,我想创建一个基本的Google任务客户端。它将是一个原生应用程序。我无法得到的是如何保持“客户机密”实际上是秘密的,因为它将包含在程序代码中。

我搜索并发现了一篇帖子,引用谷歌论坛的帖子,并且基本上建议将这件事放弃。

我花了好几个小时试图得到这个东西,但是,我现在没有回答。所以,我有两个问题要问:

  1. 让客户保密的后果是什么?
  2. 如果让人们看到这个秘密是危险的,有没有办法保守秘密,或者,有没有办法进行经典登录以支持应用专用密码登录谷歌帐户?

1 个答案:

答案 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服务进行防御可能是有意义的,但对于已安装的客户端,用户可能会从某个地方(应用程序商店,网站等)下载它,希望确保它是合法的。