Time-based One-Time Password (TOTP) is an algorithm that generates a one-time password based on the current time. TOTP is an extension of the HMAC-based One-Time Password (HOTP) algorithm and is standardized in RFC 6238. For more details, see Wikipedia.
You can install gen-totp
via npm or yarn:
npm install gen-totp
# or
yarn add gen-totp
import genTOTP from 'gen-totp';
const otp = genTOTP('test-key');
// Returns a 6-digit OTP by default
console.log(otp);
import genTOTP from 'gen-totp';
const otp = genTOTP('test-key', { digits: 4 });
// Returns a 4-digit OTP
console.log(otp);
The genTOTP function accepts two parameters:
key
: A string containing the base32-encoded secret key. It can include numbers, uppercase letters,_
, and-
.options
: An optional object to customize the OTP generation. The availableoptions
are detailed in the table below:
Option | Type | Default | Description |
---|---|---|---|
digits |
number | 6 | The number of digits in the generated OTP. |
period |
number | 30 | The time period (in seconds) after which a new OTP is generated. |
algorithm |
string | 'SHA-1' | The hashing algorithm used to generate the OTP. Supported algorithms include: |
- SHA-1 |
|||
- SHA-224 |
|||
- SHA-256 |
|||
- SHA-384 |
|||
- SHA-512 |
|||
- SHA3-224 |
|||
- SHA3-256 |
|||
- SHA3-384 |
|||
- SHA3-512 |
|||
For more details, refer to the JsSHA documentation. |
For more detailed documentation, visit the Official Documentation.
Contributions are welcome! If you have any bug reports, suggestions, or feature requests, please open an issue on GitHub.
To contribute:
- Fork the repository
- Create a new feature branch (
git checkout -b feature/new-feature
) - Commit your changes (
git commit -m 'Add new feature'
) - Push to the branch (
git push origin feature/new-feature
) - Create a new Pull Request
Make sure to follow the Contributor Covenant Code of Conduct when participating in the project.