UNPKG

cordova-plugin-mas-core

Version:
526 lines (415 loc) 189 kB
<!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