in src/login/server.ts [24:57]
export async function checkRedirectServer(isAdfs: boolean): Promise<boolean> {
if (isAdfs) {
return true;
}
let timer: NodeJS.Timer | undefined;
const checkServerPromise = new Promise<boolean>(resolve => {
const req: http.ClientRequest = https.get({
...url.parse(`${redirectUrlAAD}?state=3333,cccc`),
}, res => {
const key: string | undefined = Object.keys(res.headers)
.find(key => key.toLowerCase() === 'location');
const location: string | string[] | undefined = key && res.headers[key]
resolve(res.statusCode === 302 && typeof location === 'string' && location.startsWith('http://127.0.0.1:3333/callback'));
});
req.on('error', error => {
logErrorMessage(error);
resolve(false);
});
req.on('close', () => {
resolve(false);
});
timer = setTimeout(() => {
resolve(false);
req.abort();
}, 5000);
});
function cancelTimer() {
if (timer) {
clearTimeout(timer);
}
}
checkServerPromise.then(cancelTimer, cancelTimer);
return checkServerPromise;
}