在Javascript中从网站推文输入字段

时间:2012-05-25 19:05:58

标签: javascript twitter twitter-oauth

我的网页上有一个输入字段,我想让用户发推文。我知道我可以使用Oauth做到这一点,但因为我使用的是JavaScript,因为我的id和秘密是可见的,所以它是不安全的。有更好的方法吗?

我现在这样做的方式是这样的:

var accessor = {
  token: "...",
  tokenSecret: "...",
  consumerSecret: "..."
  consumerKey : "...",
};

  //create message with input field text
  var message = {
  action: url,
  method: "GET",
  parameters: {...}
};

OAuth.completeRequest(message, accessor);        
OAuth.SignatureMethod.sign(message, accessor);
url = url + '?' + OAuth.formEncode(message.parameters);

但这会使我的秘密可见。

由于

1 个答案:

答案 0 :(得分:0)

在OAuth模型中,有三方:服务器或“资源管理器”,应用程序或“客户端”以及用户或“资源所有者”。

在您的情况下,“客户”是您正在构建的Web应用程序。资源管理器是twitter,用户是资源所有者。也许值得重复:拥有和管理的资源是推文流。

OAuth允许客户端代表资源所有者向资源管理器提交请求。转换为您的方案,这意味着您的应用(网络应用)可以代表用户提交推文。

Web应用程序模型及其分布式计算模型,其中一些代码在服务器上运行(PHP,Ruby,ASPNET或其他任何东西),而某些代码在客户端上运行(Javascript)有点混淆了这个问题。

正如您所指出的,您可以通过在JS代码中嵌入密钥和秘密来“做”oauth。你正确地指出,这暴露了你不想暴露的东西。

显而易见的替代方法是将这些内容嵌入到服务器端代码中。这要求在服务器和推特之间发生与推特的连接,而不是在浏览器和推特之间。 当用户想要推文时,使用浏览器中的ajax调用到您的服务器上的一段代码,我们称之为mytweet.php。这是您编写的脚本,然后OAuth跳舞并代表用户向twitter.com发送状态更新。

你跟着?