我想在iPhone应用程序中为Twitter执行OAuth。但这样做意味着我需要将我的API密钥和API密钥一起嵌入应用程序二进制文件中。这显然是不可取的。
Facebook支持使用会话代理来解决其API的并行问题。
我能否为Twitter实现类似的解决方案?
简短回答:不适用。
OAuth是为Web应用程序创建的,对于本地应用程序来说不是很兼容。规范1.0a旨在使其对本地应用程序更具可行性,但实际上帮助很少。
正如您所指出的,它的一个主要问题是消费者密钥必须存储在应用程序中。对于访问源受限的Web应用程序来说不是问题,但对于本地应用程序来说是一个大问题。
其他主要问题与其在本地应用程序中未提供比标准登录表单更高的安全性有关,但我不会进一步解释。
但由于Twitter强制要求您使用它,如果您想要访问更高的速率限制并将您的应用程序名称与Tweets相关联,则别无选择。
避免在应用程序代码中拥有消费者密钥的唯一方法是通过自己的服务器代理所有请求。
有些人将密钥放入应用程序读取的设置类型文件中。其他人将密钥存储在本地应用程序的数据库文件中。还有一些人将密钥存储在自己的服务器上,原生应用程序连接到服务器获取密钥和秘钥。