UNPKG

universal_authentication

Version:

Seamless and Secure Authentication for Modern Web Applications: Easily integrate OTP-based email verification, Google OAuth, GitHub, Microsoft, and Okta login into your Node.js app. Modular, flexible, and database-agnostic, this package simplifies user au

38 lines (37 loc) 1.18 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.cleanUpOtp = exports.verifyOtp = exports.storeOtp = exports.generateOtp = exports.otpStore = void 0; exports.otpStore = new Map(); // Function to generate an OTP and store it in the otpStore const generateOtp = () => { return Math.floor(100000 + Math.random() * 900000).toString(); }; exports.generateOtp = generateOtp; const storeOtp = (email, otp) => { const expiresAt = Date.now() + 5 * 60 * 1000; exports.otpStore.set(email, { otp, expiresAt }); }; exports.storeOtp = storeOtp; //verify otp from memory const verifyOtp = (email, otp) => { const record = exports.otpStore.get(email); if (!record) { return false; } if (record.expiresAt < Date.now()) { exports.otpStore.delete(email); return false; } return record.otp === otp; }; exports.verifyOtp = verifyOtp; //clean up the expired otp const cleanUpOtp = () => { const now = Date.now(); exports.otpStore.forEach((record, email) => { if (record.expiresAt < now) { exports.otpStore.delete(email); } }); }; exports.cleanUpOtp = cleanUpOtp;