oidc-lib
Version:
A library for creating OIDC Service Providers
66 lines (56 loc) • 1.8 kB
JavaScript
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;
}