forgot-password
v1.0.0
Published
A simple package for implementing the forgot-password feature in web-apps!
Downloads
4
Readme
Forgot-Password
A simple package for implementing the forgot-password feature in web-apps!
Installation
Install forgot-password with npm
npm install forgot-password
or yarn
yarn add forgot-password
Usage/Examples
simple initialization with express
import { fpInitDB } from 'forgot-password'
import express from 'express'
const app = express()
fpInitDB('your mongo uri')
sending an OTP to validate user requesting password reset
import { sendOTP } from 'forgot-password'
app.post('/', async (req, res) => {
const result = await sendOTP({
email: 'your email here', // better to use dotenv here
password: "email's password", // better to use dotenv here
emailToSend: 'recievers email address',
subject: 'subject of the email',
companyName: 'YOUR-COMPANY',
url: 'http://localhost:5000', // your app's base url
validationUrl: '/auth/forgot-password', // the url where you want the OTP validation to occur
email: '<b>{otp}</b>' // provide if you want to send a custom email, place {otp} where you want the otp to occur, we will replace it with the actual OTP and {token} to replace it with the token
})
// the result returns true or false based on, if the email was successfully sent
if(result === true){
res.send('SUCCESS')
}else{
res.send('FAILURE')
}
})
validating the otp
the url is sent the email is something like: http://yourwebsiteurl.com/forgot-password?token=somegibberishandimportanttooken
it is based on your app's base url and validation url you can send the token, otp and new password to the backend in whichever way you like
app.post('/auth/forgot-password', async (req, res) => {
const { token, otp, newPassword } = req.body
const result = await validateOtp({hash: token, otp})
// result returns true or false based on if the validation was successfull or not
if(result === true){
saveNewPassword(password)
res.send('VALIDATED')
}else{
res.send('NOT VALIDATED')
}
})
it is quite simple to use
Authors
this project is still under development
Please report any bugs you find at: