ดำเนินการเข้าสู่ระบบ Steam บนเว็บไซต์

ฉันต้องการเข้าสู่ระบบ Steam ผ่าน cs go lounge

ขั้นตอนการเข้าสู่ระบบด้วยตนเองคือ:
1. การกดปุ่มเข้าสู่ระบบจะเปลี่ยนเส้นทางไปที่ เว็บไซต์ Steam
2.กรอกชื่อผู้ใช้และรหัสผ่าน
3.หากมีการตรวจสอบสิทธิ์อีเมล คุณจะต้องป้อนรหัสพิเศษที่คุณได้รับ
4.กลับสู่เว็บไซต์พร้อมกับคุกกี้พิเศษของโทเค็น

ตอนนี้ฉันต้องการทราบว่าฉันสามารถทำได้ผ่าน node.js ได้อย่างไร ฉันต้องการเข้าถึงข้อมูล cs go lounge แต่จะใช้ได้เฉพาะเมื่อคุณเข้าสู่ระบบเท่านั้น

ฉันได้ลองส่งแบบฟอร์มพร้อมชื่อผู้ใช้และรหัสผ่านของฉันแล้ว แต่ฉันไม่เข้าใจคำตอบที่ได้รับ:

var request = require('request');

var myJSONObject = {
    "username" : "username",
    "password" : "password",
};

request({
url: "https://steamcommunity.com/openid/login?openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0&openid.mode=checkid_setup&openid.return_to=https%3A%2F%2Fcsgolounge.com%2Flogin&openid.realm=https%3A%2F%2Fcsgolounge.com&openid.ns.sreg=http%3A%2F%2Fopenid.net%2Fextensions%2Fsreg%2F1.1&openid.identity=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select&openid.claimed_id=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select",
    method: "POST",
    json: true,  
    body: myJSONObject
    }, function (error, response, body){
    console.log(response);
});

คำตอบของฉันดูเหมือนว่า:

{ _readableState: 
{ objectMode: false,
 highWaterMark: 16384,
 buffer: [],
 length: 0,
 pipes: null,
 pipesCount: 0,
 flowing: true,
 ended: true,

ฉันเห็นที่หน้า Steam ว่าฟิลด์ทั้งหมดอยู่ในรูปแบบ (ฉันรู้วิธีส่ง POST จากด้วย json object ) แต่ฉันไม่รู้ว่าจะส่งฟิลด์ใด และจะจัดการการเข้าสู่ระบบสองขั้นตอนอย่างไร (ชื่อผู้ใช้แรกและ รหัสผ่าน แล้วตามด้วยรหัสอีเมล)
และมันก็ดำเนินต่อไปเรื่อยๆ..

ฉันยังลองเข้าสู่ระบบจาก Chrome และแยกคุกกี้และใช้งานบนเว็บไซต์ แต่ก็ไม่มีโชคอีกครั้ง

var requestify = require('requestify');
var cheerio = require("cheerio");

requestify.get('http://csgolounge.com/trade?t=99441462', {
    cookies: {

        "domain": "csgolounge.com",
        "expirationDate": 1443870461.091163,
        "hostOnly": true,
        "httpOnly": false,
        "name": "token",
        "path": "/",
        "secure": false,
        "session": false,
        "storeId": "0",
        "value": "0be791e29ba5bd1d839cb4c69bca5ba4",
        "id": 8
}
})
  .then(function(response) {    
      var $ = cheerio.load(response.getBody());
      console.log($(".buttonright").attr('href'));
  }
);

จริงๆ แล้วฉันไม่มีความคิดเลย ยกเว้นการแตะแต่ละปุ่มด้วยตนเองด้วย jquery
ความช่วยเหลือใด ๆ ที่ซาบซึ้งมาก


person David Barishev    schedule 02.09.2015    source แหล่งที่มา


คำตอบ (1)


เมื่อคุณเข้าสู่ระบบ csgo lounge ให้ตรวจสอบข้อมูลเครือข่ายของ Google Chrome (F12 -> เครือข่าย) ค้นหาบรรทัดที่โหลดหน้าเว็บและตรวจสอบว่าคุกกี้ใดบ้างที่ถูกส่งไปในส่วนหัวของคำขอ คุณพยายามส่งคุกกี้ผิดในตัวอย่างของคุณ คุณต้องส่งช่อง "id" และ "token" พร้อมส่วนหัวของคุกกี้เพื่อเข้าถึง csgo lounge

person grumd    schedule 01.01.2016