Email Verification using OTP in NodeJS
This Article speaks about setting up your node.js server for verifying emails via OTP.
Project setup: The name of the package is two-step-auth
Installation:
npm i --save two-step-auth
Default Usage:
- Kindly Provide a Company Name so the mail will be treated as important. (This is optional)
- Import the Auth object from the package and use them as mentioned below.
Folder Structure:
Code Template:
const { Auth } = require( "two-step-auth" ); async function login(emailId) { const res = await Auth(emailId); // You can follow this approach, // but the second approach is suggested, // as the mails will be treated as important const res = await Auth(emailId, "Company Name" ); console.log(res); console.log(res.mail); console.log(res.OTP); console.log(res.success); } login( "verificationEmail@anyDomain.com" ); |
- Once if the operation is success, we will have the OTP in hand, and an Email will be sent to the particular user’s mail ID
- Custom Email ID usage :
- Pull the LoginCredentials object from the package and use them as mentioned below
- Prerequisites for using custom Email ID :
- Make sure you have enabled the allow less secure apps for that particular account before executing the function.
- Turn them Off when not in use.
Example:
index.js
const { Auth, LoginCredentials } = require( "two-step-auth" ); async function login(emailId) { try { const res = await Auth(emailId, "Company Name" ); console.log(res); console.log(res.mail); console.log(res.OTP); console.log(res.success); } catch (error) { console.log(error); } } // This should have less secure apps enabled LoginCredentials.mailID = "yourmailId@anydomain.com" ; // You can store them in your env variables and // access them, it will work fine LoginCredentials.password = "Your password" ; LoginCredentials.use = true ; // Pass in the mail ID you need to verify login( "verificationEmail@anyDomain.com" ); |
We have created an OTP verification service.<
Output
Email Sample: This will received in your given mail Id.

Image as seen on mail
Please Login to comment...