1.0.8 • Published 2 years ago

mongoose-otp-handler v1.0.8

Weekly downloads
-
License
ISC
Repository
github
Last release
2 years ago

mongoose-otp-handler

A package for making otp collection in mongodb with expiry time, generation of OTP and verification of OTPS

shields.io

Installation

Install my-project with npm

  npm install mongoose-otp-handler
  

Importing

  const otpHandler=require('mongoose-otp-handler');
  
  

Overview

First we need a model of exsisting users that are going to login the fields for user collection must have default mongoose _id field, mobile number that must be unique to every collection in the user which we wish to send otp to.

  const otpHandler=require('mongoose-otp-handler');
  const expiresIn=300;
  const otpModel=otpHandler.createOtpModel(expiresIn);

We need to import the otpHandler and decalre otpModel at global level on the top of our code, this gives it an entry point and gets registered.

The expiresIn field duration sets the ttl(Tiem To Live) field for the otp and and should be a positve integer greater than 0.

OTPS model

otpModel register this schema. | Fields | Summary | | ----------------- | ------------------------------------------------------------------ | | userID |The _id field of user collection, type:Refrence, unirue:true | | otp | type:Number, required:true| | createdAt |type:Date, default:Date.now(), index:ttl | | mobileNo | type:String |

Verify OTP

  let data=await otpHandler.verifyNumber(User,"mobileNo","0000000000");
  let data_={...data._doc};
  let id=data._id;
  let mobileNo=data.;
    

verifyNumber is an async func that requires User model as an input, name of field with which your mobile number is registered(for eg here my is registered as mobile no) and the last is mobileNo in String format.

The function checks if the user with given mobile number actually exsists in the database, if so returns the user document if the user is not registered returns null.

queryOtpGen

  const result=await otpHandler.queryOtpGen(otpModel,6,id,mobbileNo);

otpHandler is an async func that requires args with otpModel, length of otp to be generated, id of user for which otp has to be generated,and mobile number to which it has to be registered aginst. **Note: Please make sure that your store the id in variable name 'id' and variable named "mobileNo".

The async function returns the collection doc of otps table created.

verifyOtpGen

  const result=await handler.verifyOtpGen(otpModel,req.body.otp,req.body.mobileNo);

verifyOtpGen is an async function that returns the json object of format

// {
//   passed:boolean
//   message:"sorry the otp has either expired!" || "Succesffully verified!" || "wrong otp entered!" 
//   id:ObjectId of user || null in case of passed is false
// }

Authors

1.0.8

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago