otp-code-generator-and-validator
v1.0.5
Published
Generate and validate time-based OTP (one time password) for multifactor authentication.
Maintainers
Readme
otp-code-generator-and-validator
Generate and validate time-based OTP (one time password) for multifactor authentication.
Install
$ npm install otp-code-generator-and-validatorUsage
Generate Secret
import {generateSecret} from "otp-code-generator-and-validator";
let secret = generateSecret();
console.log(secret); // IGJZFST44NAHVVXTgenerateSecret()
- Returns: <string> 16 character setup key.
Generate Token
import {generateTOTP} from "otp-code-generator-and-validator";
let tokens = {
previous: generateTOTP({
secret: secret,
now: Date.now() - 30000
}),
current: generateTOTP({
secret: secret
}),
next: generateTOTP({
secret: secret,
now: Date.now() + 30000
})
}
console.log(tokens); // {previous: "608121", current: "394406", next: "714744"}generateTOTP({secret, now?, timeStep?})
secret<string> 16 character setup key.now[optional] <number> Token creation time in Unix format. Default:Date.now().timeStep[optional] <number> Token change time in seconds. Default:30.- Returns: <number> 6 digit token.
Verify Token
import {verifyTOTP} from "otp-code-generator-and-validator";
let verify = verifyTOTP({
secret: secret,
token: tokens.current
});
console.log(verify); // true | falseverifyTOTP({secret, token, now?, timeStep?})
secret<string> 16 character setup key.token<number> 6 digit token.now[optional] <number> Token creation time in Unix format. Default:Date.now().timeStep[optional] <number> Token change time in seconds. Default:30.- Returns: <boolean> true | false.
Generate URL
import {generateKeyUri} from "otp-code-generator-and-validator";
let url = generateKeyUri({
secret: secret,
account: "Account Name"
});
console.log(url); // otpauth://totp/Account%20Name?secret=IGJZFST44NAHVVXT&algorithm=SHA1&digits=6&period=30generateKeyUri({secret, account, app?, timeStep?})
secret<string> 16 character setup key.account<string> User account name.app[optional] <string> The name of the application that adds verification. Default:null.timeStep[optional] <number> Token change time in seconds. Default:30.- Returns: <string> A link that can be opened by authentication apps.
Generate QR Code
import {generateQRCode} from "otp-code-generator-and-validator";
let code = await generateQRCode({
text: url
});
console.log(code); // data:image/png;base64,iVBORw0KGg...0lAlwyn0==async generateQRCode({text, options?})
text<string> Text that will be encoded in QR code.options[optional] <QRCodeToDataURLOptions> See QR Code options. Default:
{
"errorCorrectionLevel": "medium",
"type": "image/png",
"width": 500,
"color": {
"dark": "#000000",
"light": "#ffffff"
}
}- Returns: Promise<string> Data URI containing a representation of the QR Code image.
