UNPKG

casauth

Version:

Authenticator for PHP Jasig CAS ~3.5

77 lines (57 loc) 1.54 kB
//Setting certificate check to null process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = '0'; //Getting dependencies var request = require('request').defaults({ //Enabling Cookies jar: true }); var cheerio = require('cheerio'); var querystring = require('querystring'); function auth(casaddress, uname, pswd, callback){ request( { uri: casaddress.toString(), headers: { 'content-type': 'application/x-www-form-urlencoded' } }, function (err, res, body) { if(err) { return callback(err); } var $ = cheerio.load(body); var inputs = $('input'); if(inputs[4]){ //if not logged in var credentials = { username: uname.toString(), password: pswd.toString(), execution: inputs[4].attribs.value.toString() , _eventId: "submit", submit: "LOGIN", lt: inputs[3].attribs.value.toString() }; request.post( { uri: casaddress, headers: { 'content-type': 'application/x-www-form-urlencoded' }, body: querystring.stringify(credentials) }, function (err, res) { if(err) { return callback(err); } if(!res.headers['set-cookie']){ return callback({message: 'Wrong login or password !'}); } return callback(err); } ) } else { //already logged in return callback(null); } } ); } exports = module.exports = auth;