UNPKG

login-auth-services

Version:

Authentication services for Google, GitHub, Microsoft, okta and multi-factor authentication using OTP.

44 lines (43 loc) 1.65 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateToken = exports.validatePassword = exports.hashPassword = void 0; const bcrypt_1 = __importDefault(require("bcrypt")); const jsonwebtoken_1 = __importDefault(require("jsonwebtoken")); const dotenv_1 = __importDefault(require("dotenv")); dotenv_1.default.config(); async function hashPassword(password, saltRounds = 10) { try { const salt = await bcrypt_1.default.genSalt(saltRounds); const hashedPassword = await bcrypt_1.default.hash(password, salt); return hashedPassword; } catch (error) { throw new Error("Error hashing password"); } } exports.hashPassword = hashPassword; async function validatePassword(password, hashedPassword) { try { const isValid = await bcrypt_1.default.compare(password, hashedPassword); return isValid; } catch (error) { throw new Error("Error validating password"); } } exports.validatePassword = validatePassword; const SECRET_KEY = process.env.SECRET_KEY || "default_secret_key"; // Default fallback if SECRET_KEY is not set const generateToken = (email, expiresIn = "1h") => { try { const payload = { email }; const token = jsonwebtoken_1.default.sign(payload, SECRET_KEY, { expiresIn }); return token; } catch (error) { throw new Error("Error generating token"); } }; exports.generateToken = generateToken;