npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

mongoose-otp-handler

v1.0.8

Published

mongoose-otp-handler

Readme

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