export async function checkRedirectServer()

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;
}