mirror of
https://github.com/jprdonnelly/qseow-scripts.git
synced 2025-12-19 17:17:04 -05:00
73 lines
2.1 KiB
JavaScript
73 lines
2.1 KiB
JavaScript
/***** index.js *****/
|
|
const express = require('express');
|
|
const ticket = require('./ticket');
|
|
var app = express();
|
|
|
|
app.get('/index.html', function(req,res) {
|
|
console.log("accessed the index.html node page");
|
|
console.log("proxyRestUri: " + req.query.proxyRestUri);
|
|
console.log("targetId: " + req.query.targetId);
|
|
ticket.get_ticket_redirect(req.query.proxyRestUri, req.query.targetId, function(redirectUrl){
|
|
console.log("Redirecting to "+redirectUrl);
|
|
res.redirect(redirectUrl);
|
|
});
|
|
});
|
|
|
|
app.use('/', express.static('public'));
|
|
|
|
app.listen(3000, function() {
|
|
console.log("Listening on port 3000");
|
|
});
|
|
|
|
/***** ticket.js *****/
|
|
var fs = require('fs');
|
|
var request = require('request');
|
|
|
|
//define certificate folder
|
|
var directory = "./";
|
|
|
|
var get_ticket_redirect = function(proxyRestUri, targetId, callback){
|
|
|
|
//set up request options
|
|
var options = {
|
|
uri: proxyRestUri + 'ticket?xrfkey=somerandomstring',
|
|
headers: {'content-type': 'application/json',
|
|
'X-Qlik-xrfkey': 'somerandomstring',
|
|
'X-Qlik-user': 'UserDirectory=INTERNAL; UserId=sa_api'
|
|
},
|
|
method: 'POST',
|
|
body: {
|
|
"UserDirectory": "QAD",
|
|
"UserId": "djx",
|
|
"Attributes": [],
|
|
"TargetId": targetId
|
|
},
|
|
json: true,
|
|
ca: fs.readFileSync(directory+ "root.pem"),
|
|
key: fs.readFileSync(directory+"client_key.pem"),
|
|
cert: fs.readFileSync(directory+"client.pem"),
|
|
rejectUnauthorized: false
|
|
};
|
|
|
|
//send request
|
|
request(options, function (error, response, body) {
|
|
if(error)
|
|
{
|
|
console.log('Error: '+error);
|
|
console.log(response);
|
|
}
|
|
else
|
|
{
|
|
console.log("== Got a ticket ==");
|
|
console.log("Ticket: " + response.body.Ticket);
|
|
console.log("TargetUri: " + response.body.TargetUri);
|
|
callback(response.body.TargetUri + "?QlikTicket=" + response.body.Ticket); // This is the redirect URL!
|
|
}
|
|
});
|
|
|
|
}
|
|
|
|
module.exports = {
|
|
get_ticket_redirect: get_ticket_redirect
|
|
}
|