繁体   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