javascript - 为什么在 Node.js 上使用 superagent 尝试登录 reddit 失败?

标签 javascript node.js reddit superagent

这是我可以减少的最小测试用例。如果您更熟悉其中任何一种,将其转换为使用 native 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. post请求使用form而不是json,所以你需要方法.type('form')
  2. 返回的 cookie 位于:res.body.json.data.cookie
  3. superagent 中的 header 必须为小写: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']);
    });

关于javascript - 为什么在 Node.js 上使用 superagent 尝试登录 reddit 失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21213534/

相关文章:

python - praw:获取 subreddit 中随机帖子的正文和标题

node.js - 通过浏览器和 NodeJS 请求访问 Reddit json api 时,其行为有所不同

javascript - 如何在 Google Apps 脚本上请求 Reddit 的访问 token

javascript - angularjs textarea - 如何使其与 angularjs 下拉列表中选定的值保持同步

javascript - 在 javascript 中使用混洗算法跟踪索引

node.js - Webrtc中媒体流麦克风如何静音?

node.js - 使用 AWS Pinpoint 通过 Lambda 函数发送通知

javascript - 创建具有可选部分的图形元素

java - 如何将java生成的base64图像保存到服务器?

node.js - Mongoose:使用带有限制的 $in 运算符