# wpremote/6.76/wp_2fa/js/login.js

The WP Remote WordPress Plugin, version 6.76. 250 lines.

- Page: https://pluginprobe.com/plugins/wpremote/6.76/code/wp_2fa/js/login.js
- Raw: https://pluginprobe.com/plugins/wpremote/6.76/raw/wp_2fa/js/login.js
- Modified: 2026-09-17T11:43:22+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/wpremote/6.76/code/wp_2fa/js/login.js#L10-L20`.

```javascript
(function () {
	'use strict';

	document.addEventListener('click', function (event) {
		if (!event.target || event.target.id !== 'twofa-resend') return;
		event.preventDefault();
		var form = document.getElementById('loginform');
		if (!form) return;
		var codeField = form.querySelector('input[name="twofa_code"]');
		if (codeField) codeField.value = '';
		var input = form.querySelector('input[name="twofa_resend"]');
		if (!input) {
			input = document.createElement('input');
			input.type = 'hidden';
			input.name = 'twofa_resend';
			form.appendChild(input);
		}
		input.value = '1';

		var previousNoValidate = form.noValidate;
		form.noValidate = true;
		try {
			if (form.requestSubmit) {
				form.requestSubmit();
			} else {
				var submitEvent = document.createEvent('Event');
				submitEvent.initEvent('submit', true, true);
				form.dispatchEvent(submitEvent);
			}
		} finally {
			form.noValidate = previousNoValidate;
		}
	});

	document.addEventListener('DOMContentLoaded', function () {
		var loginForm = document.getElementById('loginform');
		var usernameField = document.getElementById('user_login');
		var passwordField = document.getElementById('user_pass');
		var loginButton = document.getElementById('wp-submit');
		var loginError = document.getElementById('login_error');
		var isTwoFAEnabled = false;
		var requestInFlight = false;
		var resendTimer = null;
		var progressBar = document.getElementsByClassName('wp2fa-progress-bar')[0];

		if (!loginForm || !usernameField || !passwordField || !loginButton) return;
		loginForm.addEventListener('submit', handleSubmit);

		function handleSubmit(event) {
			var formData = new FormData(loginForm);
			var isResendRequest = formData.get('twofa_resend') === '1';

			event.preventDefault();
			if (requestInFlight) return;
			requestInFlight = true;
			showProgressBar();
			disableLoginButton();

			if (isResendRequest) formData.delete('twofa_code');
			clearResendStatus();

			fetch(loginForm.action, {
				method: 'POST',
				body: formData,
				credentials: 'same-origin'
			}).then(function (response) {
				return response.text().then(function (responseText) {
					return {
						text: responseText,
						url: response.url,
						redirected: response.redirected
					};
				});
			}).then(function (responseData) {
				try {
					return JSON.parse(responseData.text);
				} catch (error) {
					return {
						success: false,
						html: responseData.text,
						responseUrl: responseData.url,
						redirected: responseData.redirected
					};
				}
			}).then(function (data) {
				if (data.success && data.data && data.data.twofa_enabled) {
					isTwoFAEnabled = true;
					showTwoFAField(data.data);
					clearLoginError();
					if (isResendRequest) {
						displayResendStatus(data.data.code_sent
							? 'A new sign-in code was sent.'
							: 'Your previous code is still valid.');
					}
					return;
				}
				if (data.success) {
					proceedWithLogin();
					return;
				}

				if (data.html) {
					handleHtmlResponse(data.html, data.responseUrl, data.redirected);
				} else if (data.data && data.data.message) {
					displayError(data.data.message);
				} else {
					displayError('An unknown error occurred');
				}
				if (isTwoFAEnabled) showTwoFAField();
				if (data.data && data.data.resend_after) restartResendCooldown(data.data.resend_after);
			}).catch(function () {
				displayError('An error occurred while processing your request');
				if (isTwoFAEnabled) showTwoFAField();
			}).then(finishRequest, finishRequest);
		}

		function finishRequest() {
			var resendInput = loginForm.querySelector('input[name="twofa_resend"]');
			if (resendInput) resendInput.remove();
			hideProgressBar();
			enableLoginButton();
			requestInFlight = false;
		}

		function handleHtmlResponse(html, responseUrl, redirected) {
			var parser = new DOMParser();
			var doc = parser.parseFromString(html, 'text/html');
			var errorElement = doc.getElementById('login_error');
			if (errorElement) {
				displayError(errorElement.textContent.trim());
			} else if (isTwoFAEnabled && redirected && responseUrl) {
				window.location.assign(responseUrl);
			} else if (isTwoFAEnabled) {
				displayError('An unknown error occurred');
			} else {
				proceedWithLogin();
			}
		}

		function proceedWithLogin() {
			loginForm.removeEventListener('submit', handleSubmit);
			hideProgressBar();
			enableLoginButton();
			requestInFlight = false;
			loginForm.submit();
		}

		function showTwoFAField(data) {
			var twofaField = document.getElementById('twofa-code-field');
			if (!twofaField) {
				var template = document.getElementById('twofa-field-template');
				if (!template || !template.content || !template.content.firstElementChild) return;
				twofaField = template.content.firstElementChild.cloneNode(true);
				var passwordContainer = passwordField.closest ? passwordField.closest('.user-pass-wrap') : passwordField.parentNode;
				var insertionPoint = passwordContainer || passwordField.parentNode;
				insertionPoint.parentNode.insertBefore(twofaField, insertionPoint.nextSibling);
			}

			var resendButton = twofaField.querySelector('#twofa-resend');
			var destination = twofaField.querySelector('#twofa-destination');
			var codeField = twofaField.querySelector('#twofa-code');
			if (data && data.twofa_method === 'email_otp') {
				if (codeField) {
					codeField.maxLength = 8;
					codeField.minLength = 8;
				}
				if (resendButton) {
					resendButton.style.display = 'inline-block';
					startResendCooldown(resendButton, Number(data.resend_after) || 0);
				}
				if (destination && data.masked_destination) {
					destination.textContent = 'A sign-in code was sent to ' + data.masked_destination + '.';
				}
			}
			twofaField.style.display = 'block';
			if (codeField) codeField.value = '';
		}

		function restartResendCooldown(seconds) {
			var resendButton = document.getElementById('twofa-resend');
			if (resendButton) startResendCooldown(resendButton, Number(seconds) || 0);
		}

		function startResendCooldown(button, seconds) {
			if (resendTimer) window.clearInterval(resendTimer);
			var remaining = Math.max(0, Math.floor(seconds));
			function render() {
				button.disabled = remaining > 0;
				button.textContent = remaining > 0 ? 'Send a new code (' + remaining + 's)' : 'Send a new code';
			}
			render();
			if (remaining < 1) return;
			resendTimer = window.setInterval(function () {
				remaining -= 1;
				render();
				if (remaining < 1) {
					window.clearInterval(resendTimer);
					resendTimer = null;
				}
			}, 1000);
		}

		function clearLoginError() {
			if (loginError) loginError.style.display = 'none';
		}

		function clearResendStatus() {
			var resendStatus = document.getElementById('twofa-resend-status');
			if (!resendStatus) return;
			resendStatus.textContent = '';
			resendStatus.style.display = 'none';
		}

		function displayResendStatus(message) {
			var resendStatus = document.getElementById('twofa-resend-status');
			if (!resendStatus) return;
			resendStatus.textContent = message;
			resendStatus.style.display = 'block';
		}

		function displayError(message) {
			if (!loginError) {
				loginError = document.createElement('div');
				loginError.id = 'login_error';
				loginForm.parentNode.insertBefore(loginError, loginForm);
			}
			loginError.textContent = message;
			loginError.style.display = 'block';
		}

		function showProgressBar() {
			if (progressBar) progressBar.classList.add('show');
		}

		function hideProgressBar() {
			if (progressBar) progressBar.classList.remove('show');
		}

		function disableLoginButton() {
			loginButton.disabled = true;
			loginButton.value = 'Verifying...';
		}

		function enableLoginButton() {
			loginButton.disabled = false;
			loginButton.value = 'Log In';
		}
	});
}());

```
