似乎无法使用Unirest进行cookie验证请求

时间:2015-07-22 13:53:49

标签: node.js unirest

我正在尝试使用Unirest Jar功能来进行会话身份验证请求,但我似乎无法记录我的名称控制台。以下是我使用的示例代码。关于如何记录我的名称控制台的任何想法?

var cheerio = require('cheerio');
var unirest = require('unirest');
var CookieJar = unirest.jar();
var twitterLogin = 'https://twitter.com/sessions';
var twitterUsername = 'TWITTERUSERNAME';
var twitterPassword = 'TWITTERPASSWORD!'

var Request = unirest.get('https://twitter.com/login').jar(CookieJar);
Request.end(function(response) {
    var $ = cheerio.load(response.body);
    var authToken = $('input[name="authenticity_token"]').val();
    console.log(authToken)
    unirest.post(twitterLogin)
        .jar(CookieJar)
        .followRedirect(true)
        .header('Referer', 'https://twitter.com/login')
        .header('content-type', 'application/x-www-form-urlencoded')
        .header('User-Agent', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.124 Safari/537.36')
        .field('authenticity_token', authToken)
        .field('session[username_or_email]', twitterUsername)
        .field('session[password]', twitterPassword)
        .end(function(response) {
            console.log(response.statusCode)
            console.log(response.body)
            unirest.get('https://twitter.com')
                .jar(CookieJar)
                .followRedirect(true)
                .end(function(response) {
                    var $ = cheerio.load(response.body)
                    console.log($('.DashboardProfileCard-name').text());
                })

        })
});

1 个答案:

答案 0 :(得分:3)

来自the docs

  

Request.jar(布尔)或Request.jar(Jar)

     

jar上设置Request.options,Cookie容器。设置为true时,它会存储Cookie以供将来使用。

您应该以{{1​​}}作为参数调用unirest.jar()

true