import {otpauth, totp, toptValidate} from "@maks11060/otp"
const secret = crypto.getRandomValues(new Uint8Array(20))
// Generate totp code
const code = await totp({secret}) // 123456
// Validate totp with time window
await toptValidate({secret, code}) // true
// Create otpauth uri
otpauth({secret, issuer: 'App name', label: '@user'}).toString()
// otpauth://totp/lable?secret=00&algorithm=SHA1&issuer=App+name
import {readableTotp} from '@maks11060/otp/readable'
const secret = crypto.getRandomValues(new Uint8Array(20))
for await (const otp of readableTotp({secret})) {
console.log(otp)
}
Apps | Algs | Period | Digits |
---|---|---|---|
Google Authenticator | SHA1 |
30 |
6 |
Microsoft Authenticator | SHA1 |
30 |
6 |