two-step-auth
This is a npm package that helps in verifying an Email address by sending OTP
Installation
1 |
npm i --save two-step-auth |
What It Does
For people developing login sections they must know if the email Id the end user provides is valid, thus this package takes in the Email ID they provide and returns you a data OTP to verify them, and sends the client one via Email, Thus making sure only verified Emails are encouraged.
General Default Usage
Kindly Provide a Company Name so the mail will be treated as important, but you can continue without it also,
Usually the server responds within seconds ~ =< 2 seconds, incase the server is inactive it might take upto ~ <= 10 seconds, And you can handle the Time you need the OTP to be valid from your project in your script and do the necessary 🙂
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<span class="pl-k">const</span> <span class="pl-kos">{</span>Auth<span class="pl-kos">}</span> <span class="pl-c1">=</span> <span class="pl-en">require</span><span class="pl-kos">(</span><span class="pl-s">'two-step-auth'</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-k">async</span> <span class="pl-k">function</span> <span class="pl-en">login</span><span class="pl-kos">(</span><span class="pl-s1">emailId</span><span class="pl-kos">)</span><span class="pl-kos">{</span> <span class="pl-k">const</span> <span class="pl-s1">res</span> <span class="pl-c1">=</span> <span class="pl-k">await</span> <span class="pl-v">Auth</span><span class="pl-kos">(</span><span class="pl-s1">emailId</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-c">// You can follw the above approach, But we recommend you to follow the one below, as the mails will be treated as important</span> <span class="pl-k">const</span> <span class="pl-s1">res</span> <span class="pl-c1">=</span> <span class="pl-k">await</span> <span class="pl-v">Auth</span><span class="pl-kos">(</span><span class="pl-s1">emailId</span><span class="pl-kos">,</span> <span class="pl-s">"Company Name"</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s1">res</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s1">res</span><span class="pl-kos">.</span><span class="pl-c1">mail</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s1">res</span><span class="pl-kos">.</span><span class="pl-c1">OTP</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s1">res</span><span class="pl-kos">.</span><span class="pl-c1">success</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-kos">}</span> <span class="pl-en">login</span><span class="pl-kos">(</span><span class="pl-s">"verificationEmail@anyDomain.com"</span><span class="pl-kos">)</span> |
Custom Mail ID Usage
Kindly enable less secure apps in the link provided below, with your mail ID that you plan to use, and enable it! This will use your email ID and password to send mails to the client. Kind note we never store your passwords, and email Ids, we just transfer messages and logout 🙂
Steps
- Pull in the LoginCredentials object from the package, and change the following, And they should be added before calling the Auth function (only for custom mail ID)
- LoginCredentials.mailID = “Your mail ID”
- LoginCredentials.password = “Your Password”
- LoginCredentials.use = true
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<span class="pl-k">const</span> <span class="pl-kos">{</span>Auth<span class="pl-kos">,</span> LoginCredentials<span class="pl-kos">}</span> <span class="pl-c1">=</span> <span class="pl-en">require</span><span class="pl-kos">(</span><span class="pl-s">'two-step-auth'</span><span class="pl-kos">)</span> <span class="pl-k">async</span> <span class="pl-k">function</span> <span class="pl-en">login</span><span class="pl-kos">(</span><span class="pl-s1">emailId</span><span class="pl-kos">)</span><span class="pl-kos">{</span> <span class="pl-k">try</span> <span class="pl-kos">{</span> <span class="pl-k">const</span> <span class="pl-s1">res</span> <span class="pl-c1">=</span> <span class="pl-k">await</span> <span class="pl-v">Auth</span><span class="pl-kos">(</span><span class="pl-s1">emailId</span><span class="pl-kos">,</span> <span class="pl-s">"Company Name"</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s1">res</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s1">res</span><span class="pl-kos">.</span><span class="pl-c1">mail</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s1">res</span><span class="pl-kos">.</span><span class="pl-c1">OTP</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s1">res</span><span class="pl-kos">.</span><span class="pl-c1">success</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-kos">}</span> <span class="pl-k">catch</span> <span class="pl-kos">(</span><span class="pl-s1">error</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s1">error</span><span class="pl-kos">)</span> <span class="pl-kos">}</span> <span class="pl-kos">}</span> <span class="pl-v">LoginCredentials</span><span class="pl-kos">.</span><span class="pl-c1">mailID</span> <span class="pl-c1">=</span> <span class="pl-s">"yourmailId@anydomain.com"</span> <span class="pl-c">//This should have less secure apps enabled</span> <span class="pl-v">LoginCredentials</span><span class="pl-kos">.</span><span class="pl-c1">password</span> <span class="pl-c1">=</span> <span class="pl-s">"Your password"</span> <span class="pl-c">// you can store them in your env variables and access them, it will work fine</span> <span class="pl-v">LoginCredentials</span><span class="pl-kos">.</span><span class="pl-c1">use</span> <span class="pl-c1">=</span> <span class="pl-c1">true</span> <span class="pl-en">login</span><span class="pl-kos">(</span><span class="pl-s">"verificationEmail@anyDomain.com"</span><span class="pl-kos">)</span> <span class="pl-c">//pass in the mail ID you need to verify</span> |
you will get a error message, if less secure apps is not enabled
Output Format
The output will be a Javascript JSON object, making it easy to work
1 2 3 4 5 6 7 8 9 |
<span class="pl-kos">{</span> <span class="pl-c1">status</span>: <span class="pl-c1">200</span><span class="pl-kos">,</span> <span class="pl-c1">mail</span>: <span class="pl-s">'yourEmailID@anydomain.com'</span><span class="pl-kos">,</span> <span class="pl-c1">OTP</span>: <span class="pl-c1">118740</span><span class="pl-kos">,</span> <span class="pl-c1">success</span>: <span class="pl-c1">true</span> <span class="pl-kos">}</span> <span class="pl-s1">yourEmailID</span>@<span class="pl-s1">anydomain</span><span class="pl-kos">.</span><span class="pl-c1">com</span> <span class="pl-c1">118740</span> <span class="pl-c1">true</span> |
Email Sample