簡體   English   中英

為什么不嘗試使用superagent在Node.js上成功登錄reddit?

[英]Why isn't this attempt to log into reddit using superagent on Node.js successful?

這是我可以減少的最小的測試用例。 如果您更熟悉其中任何一個,可能有助於將其轉換為使用本機Node HTTP或使用請求庫。 但事實上,我得到了一堆jquery垃圾。 AFAICT,發送的HTTP POST請求與curl編程的相同: https//stackoverflow.com/a/15169425/3025492

var USER = 'uuuut',
    PASS = 'ppppt';
superagent
    .post( 'https://pay.reddit.com/api/login/' )
    .send( { api_type: 'json', rem: 'True',
              user: USER, passwd: PASS } )
    .end( function( res ) {
      console.log( 'Session cookie: ', res.body.data.cookie || res.headers['Set-Cookie'] );
    });

正確完成后,它只是設置一個身份驗證cookie。

您的代碼中有幾個問題:

  1. form的post請求而不是json ,所以你需要方法.type('form')
  2. 返回的cookie位於: res.body.json.data.cookie
  3. superagent中的標題必須是小寫的: res.headers['set-cookie']

完整代碼:

superagent
    .post( 'https://pay.reddit.com/api/login/' )
    .type('form') // send request in form format
    .send( { api_type: 'json', rem: 'True',
              user: USER, passwd: PASS } )
    .end( function(err, res) {
      console.log( 'Session cookie: ', res.body.json.data.cookie || res.headers['set-cookie']);
    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM