插件中的OAuth使用者密钥

时间:2010-07-15 12:59:20

标签: plugins oauth secret-key

在插件中处理OAuth的消费者密钥的最佳方法是什么?这些插件将与/作为源代码一起分发(例如访问Delicious或Twitter的Wordpress插件)?我知道OAuth is not designed with this in mind,有proposals to solve it,但目前最好的做法是什么?

似乎有两种方法:

  1. 将您的消费者秘密放在源代码中(可能会对其进行一些混淆),并希望没有人会滥用它并让您的应用程序被禁止。如果有人,请求新密钥并向您的软件发布更新。这是what Twitter recommends for the moment
  2. 告诉大家获取自己的消费者密钥。这可能会让只知道如何安装插件的非开发人员感到困惑,并阻碍您快速试用您的软件
  3. 是否有任何提供商可以帮助您实现第二步的自动化?这样您的服务器就可以联系提供商并生成一个新的消费者秘密,它以某种方式链接到您的应用程序,但仍然是唯一的?还是有其他可行的方法吗?

1 个答案:

答案 0 :(得分:1)

第三种选择是托管一个Web应用程序,该应用程序充当您正在使用的任何OAuth服务的代理。您的所有API密钥都在您的服务器上。缺点是你需要花钱来保持机器运转。作为奖励,您可以收集有关插件使用情况的一些分析。

如果您认为您的用户具有足够的技术来生成自己的API密钥,则可以使用选项二。我已经实现了这种方法并且很难支持。

我不建议使用第一种方法,因为人们可以窃取您的OAuth密钥并伪装成您的应用程序。一旦您的API密钥处于疯狂状态,该服务将阻止您的API密钥,您的插件将停止工作。然后你就会争先恐后地尝试升级一堆你无法控制的代码。