hedgehod-kit
Version:
Configurable backend auth module with email verification, profile update, and OTP password reset
28 lines (21 loc) • 781 B
JavaScript
const jwt = require('jsonwebtoken');
const bcrypt = require('bcrypt');
const hashPassword = async (password) => {
const salt = await bcrypt.genSalt(10);
return await bcrypt.hash(password, salt);
};
const comparePassword = async (password, hash) => {
return await bcrypt.compare(password, hash);
};
const generateToken = (payload, expiresIn) => {
return jwt.sign(payload, process.env.JWT_SECRET, { expiresIn });
};
const verifyToken = (token) => {
return jwt.verify(token, process.env.JWT_SECRET);
};
const generateOTP = (length = 6) => {
let otp = '';
for (let i = 0; i < length; i++) otp += Math.floor(Math.random() * 10);
return otp;
};
module.exports = { hashPassword, comparePassword, generateToken, verifyToken, generateOTP };