Refactor example auth functions, and add one which gets password from

environment variable
This commit is contained in:
Sam Frances 2017-05-05 14:01:02 +01:00
parent 7d6f638b87
commit 0991e25f7b
1 changed files with 26 additions and 9 deletions

View File

@ -11,17 +11,34 @@
const querystring = require('querystring'); const querystring = require('querystring');
function urlTokenMatch(url, token, verbose=false) {
let splitUrl = url.split("?")
if (splitUrl.length !== 2) {
return ["", false];
}
let qs = splitUrl[1];
let qs_parsed = querystring.parse(qs);
let success = (qs_parsed.token === token);
if (verbose) {
if (!success) {
console.log("Permission denied for token: " + qs_parsed.token);
} else {
console.log("Permission granted for token: " + qs_parsed.token);
}
}
return success;
}
exports.tokenAuth = function tokenAuth(source) { exports.tokenAuth = function tokenAuth(source) {
return function(info) { return function(info) {
console.log(info.req.url); let token = source;
let splitUrl = info.req.url.split("?") return urlTokenMatch(info.req.url, token, true);
if (splitUrl.length !== 2) {
return false;
}
let qs = splitUrl[1];
let qs_parsed = querystring.parse(qs)
console.log(qs_parsed)
return (qs_parsed.token === source);
} }
} }
exports.tokenAuthEnv = function tokenAuthEnv(source) {
return function(info) {
let token = process.env[source];
return urlTokenMatch(info.req.url, token, true);
}
}