Javascript中网站的Tweet输入字段

Javascript中网站的Tweet输入字段,javascript,twitter,twitter-oauth,Javascript,Twitter,Twitter Oauth,我的网页上有一个输入字段,我想让用户发推特。我知道我可以使用Oauth来实现这一点,但因为我使用的是JavaScript,所以它是不安全的,因为我的id和密码是可见的。有更好的方法吗 我现在的做法是这样的: var accessor = { token: "...", tokenSecret: "...", consumerSecret: "..." consumerKey : "...", }; //create message with input field text

我的网页上有一个输入字段,我想让用户发推特。我知道我可以使用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);
但这会让我的秘密显露出来


谢谢

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

在你的例子中,“客户端”就是你正在构建的web应用程序。资源管理器是twitter,用户是资源所有者。也许值得重复:拥有和管理的资源就是推特流

OAuth允许客户端代表资源所有者向资源管理器提交请求。转化为您的场景,这意味着您的应用程序(web应用程序)可以代表用户提交推文

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

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

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

你明白了吗