totp-generator lets you generate TOTP tokens from a TOTP key
const totp = require("totp-generator");
// Keys provided must be base32 strings, ie. only containing characters matching (A-Z, 2-7, =).
const token = totp("JBSWY3DPEHPK3PXP");
console.log(token); // prints a 6-digit time-based token based on provided key and current time
- SHA-1
- 30-second epoch interval
- 6-digit tokens
Settings can be provided as an optional second parameter:
const totp = require("totp-generator");
const token = totp("JBSWY3DPEHPK3PXP", { digits: 8 });
console.log(token); // prints an 8-digit token
const token = totp("JBSWY3DPEHPK3PXP", { algorithm: "SHA-512" });
console.log(token); // prints a token created using a different algorithm
const token = totp("JBSWY3DPEHPK3PXP", { period: 60 });
console.log(token); // prints a token using a 60-second epoch interval
const token = totp("JBSWY3DPEHPK3PXP", { timestamp: 1465324707000 });
console.log(token); // prints a token for given time
const token = totp("JBSWY3DPEHPK3PXP", {
digits: 8,
algorithm: "SHA-512",
period: 60,
timestamp: 1465324707000,
});
console.log(token); // prints a token using all custom settings combined
- TOTP generation
- E2E tests (where you need to login with 2-factor authentication)