【发布时间】:2011-06-03 19:23:03
【问题描述】:
我正在开发一个开源的 Python 驱动的 Twitter 客户端,为了访问 Twitter API 和使用 OAuth 登录,我已经在 Twitter 上注册了我的客户端,他们给了我一个唯一的消费者密钥和消费者令牌(以下简称作为“开发人员密钥”)。这些对我的客户来说是唯一的,我的客户的所有副本都必须使用相同的开发人员密钥。 现在,我必须在 Python 脚本 (main.py) 中使用开发人员密钥,因为它是一个脚本,所以没有二进制文件。另外,我必须将代码上传到 GitHub,因为我在 GitHub 上使用 git 进行内容跟踪。 如何保密我的开发者密钥?请记住,我计划将相同的客户端分发给用户。
密钥环似乎是最好的选择,但我想要一种只有应用程序才能访问密钥环的方法,甚至不能访问其用户(应用程序之外)。而且应该没有人能够通过查看我的代码来弄清楚如何访问密钥环。
注意:“要使用 Twitter API,您要做的第一件事是注册一个客户端应用程序。您注册的每个客户端应用程序都将提供一个消费者密钥和秘密。这个密钥和秘密方案类似于公共和熟悉的人在 ssh 等协议中使用的私钥。此密钥和秘密将与您选择的编程语言中的 OAuth 库一起使用,以对您向 API 发出的每个请求进行签名。正是通过此签名我们相信识别自己是您的流量实际上就是您的过程。” - http://dev.twitter.com/pages/auth
【问题讨论】:
-
我认为这是不可能的。鉴于任何提议的机制,为什么我不能复制实现它的代码并在应用程序外部运行它?
-
您应该使用 xauth 从用户名和密码中获取 oauth 密钥,然后使用该 oauth 密钥来执行请求
-
开发人员需要向 Twitter 解释他/她想要 xAuth 的原因,然后才能获得使用 xAuth 的许可。