Skip to content

manisuec/otp-gen-agent

Repository files navigation

otp-gen-agent

A small and secure one time password (otp) generator for Javascript based on nanoid.

NPM

contributions welcome npm version License

Buy Me A Coffee
If you find this utility library useful, you can buy me a coffee to keep me energized for creating libraries like this.

Installation

npm install otp-gen-agent --save

Usage

Mobile number has become the defacto user authentication mechanism in India and hence, OTP generation is a very common phenomena. This is a small utility lib to generate OTP.

default

const { otpGen } = require('otp-gen-agent');

const otp = await otpGen(); // '344156'  (OTP length is 6 digit by default)
  • Default OTP lenght is 6
  • Default characters used to generate OTP is 0123456789

custom otp generator

const { customOtpGen } = require('otp-gen-agent');

const otp = await customOtpGen({length: 4, chars: 'abc123'}); // 'a3c1'

Arguments:

  • options: optional
    • length: custom otp length
    • chars: custom characters

You can customise the OTP length and also the characters to be used for OTP generation.

  • Default OTP lenght is 6.
  • Default characters used to generate OTP is 0123456789

bulk otp generator

const { bulkOtpGen } = require('otp-gen-agent');

const otp = await bulkOtpGen(2); // Array of otps: ['344156', '512398']
const { bulkOtpGen } = require('otp-gen-agent');

const otp = await bulkOtpGen(2, {length = 5, chars: 'abcd123'} ); // Array of otps: ['312b3', 'bcddd']

Arguments:

  • num: number of OTPs to be generated in bulk
  • opts: optional argument
    • length: custom otp length (default: 6)
    • chars: custom characters (default: 0123456789)

Useful in cases where number of OTPs to be generated is known before hand.

Test

npm run test

Read More

Read more in detail at A One Time Password (OTP) generator

License

MIT

Buy Me A Coffee

If you find this utility library useful, you can buy me a coffee to keep me energized for creating libraries like this.

Tech Blog

Read my blog at Tech Insights: Personal Tech Blog