otplib API Documentation / otplib / class / OTP
Class: OTP
Defined in: packages/otplib/src/class.ts:287
OTP Class
A wrapper class that dynamically handles TOTP and HOTP strategies.
Examples
import { OTP } from 'otplib';
// Create OTP instance with TOTP strategy (default)
const otp = new OTP({ strategy: 'totp' });
// Generate and verify
const secret = otp.generateSecret();
const token = await otp.generate({ secret });
const result = await otp.verify({ secret, token });With HOTP strategy
import { OTP } from 'otplib';
const otp = new OTP({ strategy: 'hotp' });
const token = await otp.generate({ secret: 'ABC123', counter: 0 });Generating otpauth:// URI for authenticator apps
import { OTP } from 'otplib';
const otp = new OTP({ strategy: 'totp' });
const uri = otp.generateURI({
issuer: 'MyApp',
label: 'user@example.com',
secret: 'ABC123',
});Constructors
Constructor
new OTP(
options?):OTP
Defined in: packages/otplib/src/class.ts:293
Parameters
options?
OTPClassOptions = {}
Returns
OTP
Methods
generate()
generate(
options):Promise<string>
Defined in: packages/otplib/src/class.ts:332
Generate an OTP token based on the configured strategy
Parameters
options
Generation options
Returns
Promise<string>
OTP code
Throws
If the algorithm is invalid or unsupported by the plugin
Throws
If HMAC computation fails in the crypto plugin
generateSecret()
generateSecret(
length?):string
Defined in: packages/otplib/src/class.ts:320
Generate a random secret key
Parameters
length?
number = 20
Number of random bytes (default: 20)
Returns
string
Base32-encoded secret key
generateSync()
generateSync(
options):string
Defined in: packages/otplib/src/class.ts:350
Generate an OTP token based on the configured strategy synchronously
Parameters
options
Generation options
Returns
string
OTP code
Throws
If the algorithm is invalid or unsupported by the plugin
Throws
If HMAC computation fails or the plugin does not support sync operations
generateURI()
generateURI(
options):string
Defined in: packages/otplib/src/class.ts:405
Generate an otpauth:// URI for QR code generation
Supports both TOTP and HOTP strategies.
Parameters
options
URI generation options
Returns
string
otpauth:// URI string
Throws
If a non-empty algorithm is not supported
getStrategy()
getStrategy():
OTPStrategy
Defined in: packages/otplib/src/class.ts:310
Get the current strategy
Returns
verify()
verify(
options):Promise<VerifyResult>
Defined in: packages/otplib/src/class.ts:368
Verify an OTP token based on the configured strategy
Parameters
options
Verification options
Returns
Promise<VerifyResult>
Verification result with validity and optional delta
Throws
If the algorithm is invalid or unsupported by the plugin
Throws
If HMAC computation fails in the crypto plugin
verifySync()
verifySync(
options):VerifyResult
Defined in: packages/otplib/src/class.ts:386
Verify an OTP token based on the configured strategy synchronously
Parameters
options
Verification options
Returns
Verification result with validity and optional delta
Throws
If the algorithm is invalid or unsupported by the plugin
Throws
If HMAC computation fails or the plugin does not support sync operations