From 0991e25f7b442a95c99a7119029f7a5bf3307987 Mon Sep 17 00:00:00 2001 From: Sam Frances Date: Fri, 5 May 2017 14:01:02 +0100 Subject: [PATCH] Refactor example auth functions, and add one which gets password from environment variable --- other/js/auth_plugin_examples.js | 35 ++++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/other/js/auth_plugin_examples.js b/other/js/auth_plugin_examples.js index 8cce44c..769a25a 100644 --- a/other/js/auth_plugin_examples.js +++ b/other/js/auth_plugin_examples.js @@ -11,17 +11,34 @@ 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) { return function(info) { - console.log(info.req.url); - let splitUrl = info.req.url.split("?") - 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); + let token = source; + return urlTokenMatch(info.req.url, token, true); } } +exports.tokenAuthEnv = function tokenAuthEnv(source) { + return function(info) { + let token = process.env[source]; + return urlTokenMatch(info.req.url, token, true); + } +}