2017-01-07 89 views
0

有一个网站可以与在线游戏的虚拟物品一起使用。我制作了一个Chrome扩展程序,可以自动执行该网站上的一些操作。由于我想使我的raspberryPi(和扩展铬看起来太慢,效率不高)运行这个我试图把它移到node.js.从node.js发送POST - 网站如何识别我?

该网站的登录与Steam OpenID一起使用。它允许你从列表中选择项目,点击几个按钮,然后它发送一个蒸汽交易。

我的扩展与我登录网站时一起工作。它使用jQuery getJSON接收数据库,遍历数组,将一些值推入数组,然后发送一个post请求,告诉网站我想要的项目以及我提供的项目。

这里是我要打发从镀铬的要求:

function withdrawXHR(botId, playerItems, botItems) { 

    $.ajax({ 
     url: websiteURL, 
     type: 'post', 
     data: { 
      "steamid": botId, 
      "peopleItems": playerItems, 
      "botItems": botItems 
     }, 
     success: function (data) { 
      console.error('>> Done: ' + data) 
      console.log("") 

     }, 
     error: function(XMLHttpRequest, textStatus, errorThrown) { 
      console.error('>> Error: ' + errorThrown) 
      console.log("") 

     } 
    }); 

} 

我可以做点到目前为止的所有像接受他们的数据库,通过它的工作,筛选出我需要的价值,但我可以”设法发送工作请求。问题可能是登录/网站如何知道我是谁。

我使用wrapAPI(铬扩展名)来捕获在手动使用网站时发送的请求。这里是什么样子:

Request

因此,这些都是我想知道的事情上

  • 我怎么会派从节点这个要求吗?

  • 网站如何知道我是谁?他们显然知道,因为他们向我发送了一份报价,但在该请求中我看不到任何“个人”数据。

  • 我需要以某种方式从Node登录Steam OpenId吗?那可能吗?

  • 什么是CF-RAY? (请参阅捕获的请求的结尾)。

我对JS和通常的请求,甚至是“更新”的Node.js都很陌生。我不完全了解发送请求的背景是如何工作的。我只需要一些提示,就如何实现我的目标的想法。

任何帮助,非常感谢!谢谢! :)

回答

1

您无法跨域使用XMLHttpRequest资源。 (顺便说一句,除非你使用扩展名)

我会考虑抓住express.js和一些叫做CORS的东西。 CORS允许跨域请求。

这里:http://enable-cors.org/server_expressjs.html

这里是在浏览器扩展上XHR请求的一些信息:https://developer.chrome.com/extensions

+0

我想你让我错在这里。该扩展只在网站上运行,因此没有跨域请求。该扩展也完美地工作。我试图实现的是摆脱扩展,并将我所有的操作移动到Node.JS.为了达到这个目的,我需要了解如何通过来自Node的网站来识别我自己,因为我看不到任何cookie与请求一起传输。非常感谢链接,将通读并看看我是否可以使用它! :) –

+1

你正在添加标题? –

+0

到目前为止 - 没有。顶部的一小段代码是我用来从chrome发送请求的。我想,这个头文件是由chrome本身完成的。如果我从节点发送请求,是否需要手动添加所有这些标头?如果是这样 - 我看不到任何用于在图像附加示例请求标题中标识自己的信息。 –