1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-22 11:13:46 +00:00
Files
browser/src/connectors/duo.ts
2018-12-18 17:00:03 -05:00

51 lines
1.3 KiB
TypeScript

import * as DuoWebSDK from 'duo_web_sdk';
// tslint:disable-next-line
require('./duo.scss');
document.addEventListener('DOMContentLoaded', (event) => {
const frameElement = document.createElement('iframe');
frameElement.setAttribute('id', 'duo_iframe');
setFrameHeight();
document.body.appendChild(frameElement);
const hostParam = getQsParam('host');
const requestParam = getQsParam('request');
DuoWebSDK.init({
iframe: 'duo_iframe',
host: hostParam,
sig_request: requestParam,
submit_callback: (form: any) => {
invokeCSCode(form.elements.sig_response.value);
},
});
window.onresize = setFrameHeight;
function setFrameHeight() {
frameElement.style.height = window.innerHeight + 'px';
}
});
function getQsParam(name: string) {
const url = window.location.href;
name = name.replace(/[\[\]]/g, '\\$&');
const regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)');
const results = regex.exec(url);
if (!results) {
return null;
}
if (!results[2]) {
return '';
}
return decodeURIComponent(results[2].replace(/\+/g, ' '));
}
function invokeCSCode(data: string) {
try {
(window as any).invokeCSharpAction(data);
} catch (err) { }
}