Генерируем одноразовые пароли для 2FA в JS с помощью Web Crypto API. Александр Хованский реализует двухфакторную аутентификацию на нативных технологиях с подробными объяснениями — https://habr.com/p/462945/