cordova-plugin-mas-core
Version:
Cordova MAS Foundation Plugin
526 lines (415 loc) • 189 kB
HTML
<!DOCTYPE html>
<html>
<head>
<title>Home Page</title>
<meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css"/>
<script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
<script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>
<meta charset="utf-8">
<!-- iPad/iPhone specific css below, add after your main css >
<link rel="stylesheet" media="only screen and (max-device-width: 1024px)" href="ipad.css" type="text/css" />
<link rel="stylesheet" media="only screen and (max-device-width: 480px)" href="iphone.css" type="text/css" />
-->
<!-- If your application is targeting iOS BEFORE 4.0 you MUST put json2.js from http://www.JSON.org/json2.js into your www directory and include it here -->
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8"
src="plugins/cordova-plugin-mas-core/www/MASPlugin.js"></script>
<script type="text/javascript">
// If you want to prevent dragging, uncomment this section
/*
function preventBehavior(e)
{
e.preventDefault();
};
document.addEventListener("touchmove", preventBehavior, false);
*/
/* If you are supporting your own protocol, the var invokeString will contain any arguments to the app launch.
see http://iphonedevelopertips.com/cocoa/launching-your-own-application-via-a-custom-url-scheme.html
for more details -jm */
/*
function handleOpenURL(url)
{
// TODO: do something with the url passed in.
}
*/
function onBodyLoad() {
document.addEventListener("deviceready", onDeviceReady, false);
}
function onDeviceReady() {
}
</script>
<script type="text/javascript">
$(document).ready(function() {
$("#scan").bind("click", function(event, ui) {
$(this).find("textarea.error").hide();
var thisElement = $(this);
if ('plugins' in cordova && 'barcodeScanner' in cordova.plugins) {
cordova.plugins.barcodeScanner.scan(function(result) {
var MAS = new MASPlugin.MAS();
MAS.authorize(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
}, function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
}, result.text);
},
function(error) {
alert("Scanning failed: " + error);
}, {
"preferFrontCamera": false, // iOS and Android
"showFlipCameraButton": true, // iOS and Android
"prompt": "Place a barcode inside the scan area", // supported on Android only
"formats": "QR_CODE,PDF_417", // default: all but PDF_417 and RSS_EXPANDED
"orientation": "landscape" // Android only (portrait|landscape), default unset so it rotates with the device
});
} else if (typeof QRCode !== 'undefined') {
QRCode.scanCode(function(info) {
var MAS = new MASPlugin.MAS();
MAS.authorize(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
}, function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
}, info);
});
} else {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, "No QRCode Scanner plugin added !!");
}
});
$("#init").bind("click", function(event, ui) {
$(this).find("textarea.error").hide();
var thisElement = $(this);
var MAS = new MASPlugin.MAS();
MAS.initialize(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
}, function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
});
});
$("#setAuthCallbackHandler").bind("click", function(event, ui) {
$(this).find("textarea.error").hide();
var thisElement = $(this);
var MAS = new MASPlugin.MAS();
MAS.setAuthCallbackHandler(
function(result){
let requestType = result.requestType;
console.log(JSON.stringify(result));
if(requestType !== null && requestType === 'Login'){
// Uncomment this code for using custom-login.html
// MASPluginUtils.setPopUpStyle(MASPluginConstants.MASPopupStyle.MASPopupLoginStyle);
// MASPluginUtils.MASPopupUI("custom-login.html",null,function(){},function(){});
MAS.completeAuthentication(
function () {
console.log("Login successful");
}, function (error) {
let returnedError = "Internal Server Error";
if (!MASPluginUtils.isEmpty(error) && !MASPluginUtils.isEmpty(error.errorMessage)) {
returnedError = JSON.stringify(error.errorMessage);
}
console.log("Error in Login::"+returnedError);
alert("LOGIN-ERROR:"+returnedError);
}, "username", "password"); // Replace the username/password here with actual credentials
// Or you can choose to cancel this request as below
// MAS.cancelAuthentication(function() {},function (){});
}
});
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, "Custom Authentication Handler Registered");
});
$("#removeAuthCallbackHandler").bind("click", function(event, ui) {
$(this).find("textarea.error").hide();
var thisElement = $(this);
var MAS = new MASPlugin.MAS();
MAS.removeAuthCallbackHandler();
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, "Custom Authentication Handler Removed");
});
$("#useNativeMASUI").bind("click", function(event, ui) {
$(this).find("textarea.error").hide();
var thisElement = $(this);
var MAS = new MASPlugin.MAS();
MAS.useNativeMASUI(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
}, function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
});
});
$("#setCustomLoginPage").bind("click", function(event, ui) {
if ($(event.target).context.tagName != 'A') return;
$(this).find("textarea.error").hide();
var thisElement = $(this);
var MAS = new MASPlugin.MAS();
var loginPageName = $("input[name='loginPageName']").val();
MAS.setCustomLoginPage(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
}, loginPageName);
});
$("#setCustomOTPChannelsPage").bind("click", function(event, ui) {
if ($(event.target).context.tagName != 'A') return;
$(this).find("textarea.error").hide();
var thisElement = $(this);
var MAS = new MASPlugin.MAS();
var otpChannelsPageName = $("input[name='otpChannelsPageName']").val();
MAS.setCustomOTPChannelsPage(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
}, otpChannelsPageName);
});
$("#setCustomOTPPage").bind("click", function(event, ui) {
if ($(event.target).context.tagName != 'A') return;
$(this).find("textarea.error").hide();
var thisElement = $(this);
var MAS = new MASPlugin.MAS();
var otpPageName = $("input[name='otpPageName']").val();
MAS.setCustomOTPPage(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
}, otpPageName);
});
$("#setGrantFlowPassword").bind("click", function(event, ui) {
$(this).find("textarea.error").hide();
var thisElement = $(this);
var MAS = new MASPlugin.MAS();
MAS.grantFlow(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
}, MASPlugin.MASGrantFlow.MASGrantFlowPassword);
});
$("#setGrantFlowClientCredential").bind("click", function(event, ui) {
$(this).find("textarea.error").hide();
var thisElement = $(this);
var MAS = new MASPlugin.MAS();
MAS.grantFlow(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
}, MASPlugin.MASGrantFlow.MASGrantFlowClientCredentials);
});
$("#setConfigName").bind("click", function(event, ui) {
if ($(event.target).context.tagName != 'A') return;
$(this).find("textarea.error").hide();
var thisElement = $(this);
var MAS = new MASPlugin.MAS();
var configFileName = $("input[name='configName']").val();
MAS.configFileName(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
}, configFileName);
});
$("#start").bind("click", function(event, ui) {
$(this).find("textarea.error").hide();
var thisElement = $(this);
var MAS = new MASPlugin.MAS();
MAS.start(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
});
});
$("#startWithDefault").bind("click", function(event, ui) {
if ($(event.target).context.tagName != 'A') return;
$(this).find("textarea.error").hide();
var thisElement = $(this);
var MAS = new MASPlugin.MAS();
MAS.startWithDefaultConfiguration(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
}, true);
});
$("#startWithJSON").bind("click", function(event, ui) {
if ($(event.target).context.tagName != 'A') return;
$(this).find("textarea.error").hide();
var thisElement = $(this);
var MAS = new MASPlugin.MAS();
var jsonObject = thisElement.find("input[name='jsonObject']").val() ? JSON.parse(thisElement.find("input[name='jsonObject']").val()) : null;
MAS.startWithJSON(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
}, jsonObject);
});
$("#startWithURL").bind("click", function(event, ui) {
if ($(event.target).context.tagName != 'A') return;
$(this).find("textarea.error").hide();
var thisElement = $(this);
var url = $("input[name='configUrl']").val();
var MAS = new MASPlugin.MAS();
MAS.startWithURL(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
}, url);
});
$("#stop").bind("click", function(event, ui) {
$(this).find("textarea.error").hide();
var thisElement = $(this);
var MAS = new MASPlugin.MAS();
MAS.stop(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
}, MASPlugin.MASGrantFlow.MASGrantFlowClientCredentials);
});
$("#initEnterpriseBrowser").bind("click", function(event, ui) {
$(this).find("textarea.error").hide();
var thisElement = $(this);
var MASApplication = new MASPlugin.MASApplication();
MASApplication.initEnterpriseBrowser(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
});
});
$("#gatewayIsReachable").bind("click", function(event, ui) {
$(this).find("textarea.error").hide();
var thisElement = $(this);
var MAS = new MASPlugin.MAS();
MAS.gatewayIsReachable(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
});
});
$("#enablePKCE").bind("click", function(event, ui) {
if ($(event.target).context.tagName != 'A') return;
$(this).find("textarea.error").hide();
var thisElement = $(this);
var enable = thisElement.find("select[name='enablePKCEBoolValue']").val();
var MAS = new MASPlugin.MAS();
MAS.enablePKCE(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
}, enable);
});
$("#isPKCEEnabled").bind("click", function(event, ui) {
if ($(event.target).context.tagName != 'A') return;
$(this).find("textarea.error").hide();
var thisElement = $(this);
var MAS = new MASPlugin.MAS();
MAS.isPKCEEnabled(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
});
});
$("#getMASState").bind("click", function(event, ui) {
if ($(event.target).context.tagName != 'A') return;
$(this).find("textarea.error").hide();
var thisElement = $(this);
var MAS = new MASPlugin.MAS();
MAS.getMASState(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
});
});
////////////////////// JWKS Begin//////////////////////////////////////
$("#enableJwksPreload").bind("click", function(event, ui) {
if ($(event.target).context.tagName != 'A') return;
$(this).find("textarea.error").hide();
var thisElement = $(this);
var enable = thisElement.find("select[name='enableJwksPreloadBoolValue']").val();
var MAS = new MASPlugin.MAS();
MAS.enableJwksPreload(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
}, enable);
});
$("#isJwksPreloadEnabled").bind("click", function(event, ui) {
if ($(event.target).context.tagName != 'A') return;
$(this).find("textarea.error").hide();
var thisElement = $(this);
var MAS = new MASPlugin.MAS();
MAS.isJwksPreloadEnabled(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, result);
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
});
});
////////////////////////////JWKS End///////////////////////////////
$("#enableIdTokenValidation").bind("click", function(event, ui) {
if ($(event.target).context.tagName != 'A') return;
$(this).find("textarea.error").hide();
var thisElement = $(this);
var enableValidation = thisElement.find("select[name='enableValidation']").val();
var MAS = new MASPlugin.MAS();
MAS.enableIdTokenValidation(function(result) {
thisElement.removeClass("success").removeClass("failure").addClass("success");
displayResult(thisElement, enableValidation==='true' ? "ID_Token Validation Enabled" : "ID_Token Validation Disabled");
},
function(error) {
thisElement.removeClass("success").removeClass("failure").addClass("failure");
displayError(thisElement, error);
},ena