PingOne Protect SDK Implementation
by Bijoy Anupam
HTML
<button type="button" onclick="loadScript('https://apps.pingone.com/signals/web-sdk/5.2.7/signals-sdk.js')">Inject Signals SDK</button>
<button type="button" onclick="initPingOne()">Initialize Signals SDK</button>
<button type="button" onclick="generateRiskPayload()">Generate Risk Payload</button>
JavaScript
// Inject Script
function loadScript(src) {
return new Promise(function(resolve, reject) {
var s;
s = document.createElement('script');
s.src = src;
s.onload = resolve;
s.onerror = reject;
document.head.appendChild(s);
});
}
// Listen for the PingOneSignalsReadyEvent event
function onPingOneSignalsReady(callback) {
if (window['_pingOneSignalsReady']) {
callback();
} else {
document.addEventListener('PingOneSignalsReadyEvent', callback);
}
}
// Initialize
function initPingOne() {
onPingOneSignalsReady(function() {
let start = performance.now();
_pingOneSignals.init({
// If you are using the PingFed authentication API and version 1.3 of the Integration Kit, uncomment the following line to turn off the collection of behavioral data
// behavioralDataCollection: false
}).then(function() {
let timeTaken = performance.now() - start;
console.log("PingOne Signals initialized successfully");
console.log("Total time taken to initialize: " + timeTaken + " milliseconds");
}).catch(function(e) {
console.error("SDK Init failed", e);
});
});
}
function generateRiskPayload() {
let start = performance.now();
_pingOneSignals.getData()
.then(function(result) {
let timeTaken = performance.now() - start;
console.log("Risk-Payload Data: " + result);
console.log("Total time taken to generate risk-payload: " + timeTaken + " milliseconds");
}).catch(function(e) {
console.error('getData Error!', e);
});
}