Приложение Google Authenticator создает токены, которые мы пытаемся воспроизвести с помощью библиотеки OTP ( otplib ) следующим образом. Даже при одновременном запуске один соответствует, а другой нет.
import { authenticator, totp, hotp } from 'otplib'
const secret = "NZQKPMNENSPOWUQZ"
console.log(authenticator.generate(secret)) // matches the app token
console.log(totp.generate(secret)) // does not match
Почему два сгенерированных токена различаются? Одним из различий между параметрами для каждого генератора является кодировка, поэтому также попробовал это с теми же результатами
totp.options = {encoding: 'hex'} // default is 'ascii'
Как сгенерировать тот же код с totp
(или hotp
), что и с authenticator