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