Melakukan login ke steam di sebuah website

Saya ingin melakukan login ke steam melalui cs go lounge.

Proses login secara manual adalah :
1. Menekan tombol login akan mengalihkan ke situs web steam.
2.Isi nama pengguna dan kata sandi.
3.Jika ada otentikasi email Anda perlu memasukkan kode khusus yang Anda terima.
4.Ia kembali ke situs web dengan cookie token khusus.

Sekarang saya ingin tahu bagaimana saya bisa melakukan hal yang sama melalui node.js? Saya ingin mengakses data cs go lounge tetapi itu hanya tersedia jika Anda masuk.

Saya telah mencoba mengirimkan formulir dengan nama pengguna dan kata sandi saya, tetapi saya tidak mengerti tanggapan yang saya dapatkan:

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);
});

Tanggapan saya terlihat seperti:

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

Saya melihat di halaman uap bahwa semua bidang ada dalam formulir (saya tahu cara mengirim POST dengan objek json) tetapi saya tidak tahu bidang apa yang harus dikirim, dan bagaimana menangani dua langkah login (nama pengguna pertama dan kata sandi lalu kode email).
Dan seterusnya..

Saya juga mencoba masuk dari chrome dan mengekstrak cookie dan menggunakannya di situs web, tetapi sekali lagi tidak berhasil

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'));
  }
);

Sejujurnya saya kehabisan ide, kecuali menyentuh setiap tombol secara manual dengan jquery.
Bantuan apa pun sangat kami hargai.


person David Barishev    schedule 02.09.2015    source sumber


Jawaban (1)


Saat Anda login ke csgolounge, periksa data jaringan Google Chrome (F12 -> Jaringan). Temukan baris tempat memuat halaman itu sendiri dan periksa Cookie apa yang dikirim dalam header permintaan. Anda mencoba mengirim cookie yang salah dalam contoh Anda. Anda perlu mengirimkan kolom "id" dan "token" dengan header cookie untuk mengakses csgolounge.

person grumd    schedule 01.01.2016