Files
2026-09-10 11:34:19 +03:30

17 lines
727 B
JavaScript

document.addEventListener('DOMContentLoaded', async () => {
if (!('OTPCredential' in window) || !window.isSecureContext) return;
const form = document.querySelector('[data-webotp-form]');
const input = form?.querySelector('[data-webotp]');
if (!form || !input) return;
const controller = new AbortController();
form.addEventListener('submit', () => controller.abort(), { once: true });
try {
const credential = await navigator.credentials.get({ otp: { transport: ['sms'] }, signal: controller.signal });
if (!credential?.code) return;
input.value = credential.code;
form.requestSubmit();
} catch (error) {
if (error.name !== 'AbortError') console.debug('WebOTP unavailable', error);
}
});