nodejs request.post(user,pass)并在auth之后从另一个url获取数据

时间:2016-06-05 17:23:25

标签: node.js authentication request

我希望获得一些在身份验证后可用的数据。我在页面http://site.domain.com/auth.html上传递了一个帖子登录名和密码,我想从另一个页面获取html http://site.domain.com/anotherpage.html

request.post({followAllRedirects: true, url:'http://site.domain.com/auth.html', form:{user:'login@domain.com', pass:'password'}},
function (error, response, body) {
    if (!error) {
        request('http://site.domain.com/anotherpage.html', function(error, response, html){
           fs.appendFileSync('log.txt', html, encoding='utf8');
        });
    }
});

正常进行身份验证(带有问候语的html中有一条消息),请求后我获取数据,就好像未通过身份验证一样。

修正结果:

var j = request.jar(); var request = request.defaults({jar:j});

然后是我的代码

2 个答案:

答案 0 :(得分:0)

通常,在网络中,身份验证信息作为cookie存储在用户的浏览器中。因为这是一个服务器请求,我不认为两个"无关"请求将削减它,因为没有与第一请求有关的头信息与第二请求一起被发送。也许您可以尝试使用this策略或其他类似的程序来模仿标题交互。

答案 1 :(得分:0)

我找到了一个解决方案,我把我的代码放在首位,这些行

var j = request.jar(); var request = request.defaults({jar:j});

jar - 如果是,请记住cookie以备将来使用(或定义自定义cookie jar;