UNPKG

oidc-lib

Version:

A library for creating OIDC Service Providers

66 lines (56 loc) 1.8 kB
module.exports = { onload: onload, } function onload(){ // debugger; var urlEl = document.getElementById('fp_url'); var url = urlEl.value; var tokenResultStringEl = document.getElementById('fp_tokenResultString'); var tokenResultString = tokenResultStringEl.value; var tokenResult = parseParameterString(tokenResultString); var formEl = createPostForm(url, tokenResult); formEl.submit(); } function createPostForm(url, tokenResult){ var form = document.createElement("form"); form.setAttribute("method", "post"); form.setAttribute("action", url); for (var k in tokenResult){ if (tokenResult[k]){ addInput(form, k, tokenResult[k]); } } document.getElementById("postdiv").appendChild(form); return form; function addInput(form, name, value){ var el = document.createElement("input"); el.setAttribute("type", "text"); el.setAttribute("name", name); el.setAttribute("value", value); form.appendChild(el); } } function parseParameterString(inputString){ if (inputString.startsWith("?") || inputString.startsWith("#")){ inputString = inputString.substring(1); } var params = inputString.split("&"); var qParams = {}; for (var i=0; i < params.length; i++){ var qParam = params[i].split("="); var key = decodeURIComponent(qParam[0]); var value = fullyDecodeURIComponent(qParam[1]); qParams[key] = value; } return qParams; } function fullyDecodeURIComponent(value){ var cutoff = 0; var value1 = decodeURIComponent(value); while (value1 !== value && cutoff < 5){ cutoff++; value = value1; value1 = decodeURIComponent(value); } return value; }