使用节点js脚本对网站进行身份验证

时间:2015-06-08 11:43:33

标签: javascript node.js authentication ssl https

我的总体目标如下:

- >从fabric.io(= crashlytics)获取数据到geckoboard仪表板。

据我所知,在crashlytics / fabric方面没有API,所以我有以下想法:

在nodejs中写一个脚本(因为我知道节点js有点,我不是专家),它会:

  1. 打开我想要的数据
  2. 的html页面
  3. 使用htmlparser
  4. 查找我的数据
  5. 将该数据保存到Google表格中
  6. 让geckoboard阅读Google工作表并显示数据
  7. 第4步已经完成,我现在正在处理第1步。 遗憾的是,由于页面无法公开访问,我遇到了问题,因此我需要使用自己的用户帐户进行身份验证。

    我已经重复使用了一些代码,这些代码在其他一些网站上进行GET / POST / PUT时效果很好。 REST api,但它似乎不能在这里工作,因为结构将我重定向到登录页面。

    然而,当我在网上搜索节点auth时,我发现模块可供人们创建一个处理身份验证的服务器,而我却尝试使用node登录网站。

    很有可能我想要实现的目标或我尝试做的方式根本没有意义。但是,由于我没有足够的技能来实现这一点,如果有人能够向我证实,我会感到高兴。至少我知道我正在寻找错误的方向; - )

    感谢您的阅读

    这是我的代码:

    var fs = require('fs');
    var https = require('https');
    var creds = require('./config/credentials.js');
    var date = new Date();
    var htmlpage = "";
    
    var authorizationHeader = "Basic " + new Buffer(creds.login + ":" + creds.pwd).toString("base64");
    var get_options = {
        hostname: "fabric.io",
        path: "/my-company-account/ios/apps/app.identifier/answers/stability",
        method: "GET",
        port: 443,
        headers: {
            "content-type": "application/json",
            "Authorization": authorizationHeader
        }
    };
    
    var get_req = https.request(get_options, function(res){
        res.setEncoding('utf8');
    
        res.on('data', function(chunk){
            htmlpage += chunk;
        }); // end res.on 'data'
    
        res.on('end', function(){
            console.log(htmlpage);
            //tmp debug
            fs.writeFile('./logs/ac-ios_' + date.getTime() + '.html', htmlpage, function(err){
                if (err) {
                    console.log(err);
                }
            }); // end write html file
    
            /*var parser = new htmlparser.Parser(handler);
            parser.parseComplete(htmlpage);*/
        }); // end res.on 'end'
    }); // end https.request
    
    get_req.on("error", function(err){
            console.log(err);
        });
    
    get_req.end();
    

    这给了我以下html:

    <html>
    <body>You are being <a href="https://fabric.io/login?redirect_url=%2Fwebedia-mobile%2Fios%2Fapps%2Fcom.allocine.applifrance%2Fanswers%2Fstability">redirected</a>.</body>
    </html>
    

0 个答案:

没有答案