UNPKG

@tayar/auth

Version:

Authentication Kit for React and Next.js

1 lines 2.9 kB
{"version":3,"sources":["../src/login.ts"],"sourcesContent":["import { compare, hash } from \"bcrypt\";\nimport { sign, verify } from \"jsonwebtoken\";\n\n// import HajarError from \"../utils/hajarError\";\n\nexport async function login(\n email: string,\n password: string,\n userType: string,\n config: any\n) {\n try {\n const { models } = config.mongoose;\n const user = await models.User.findOne({ email });\n if (!user) {\n throw new Error(\"User not found\");\n // throw new HajarError(\"User not found\", \"invalid-email-password\");\n }\n\n const validPassword = await compare(password, user.password);\n\n if (!validPassword) {\n throw new Error(\"User not found\");\n\n // throw new HajarError(\"Invalid password\", \"invalid-email-password\");\n }\n\n // Capitalize the first letter of userType\n const modelType = userType.charAt(0).toUpperCase() + userType.slice(1);\n\n // Check if the model exists in models on our mongoose instance\n if (!models[modelType]) {\n throw new Error(\"User not found\");\n\n // throw new HajarError(\"Invalid user type\", \"invalid_user_type\");\n }\n\n const additionalData = await models[modelType].findOne({ uid: user._id });\n if (!additionalData) {\n throw new Error(\"User not found\");\n\n // throw new HajarError(`${modelType} not found`, `${userType}_not_found`);\n }\n\n const token = sign({ _id: user._id }, config.accessToken, {\n expiresIn: \"1h\"\n });\n\n const refreshToken = sign({ _id: user._id }, config.refreshToken, {\n expiresIn: \"7d\"\n });\n\n return {\n success: true,\n user: { ...user.toObject() },\n [userType]: { ...additionalData.toObject() },\n token,\n refreshToken\n };\n } catch (error) {\n console.error(\"Login error:\", error);\n throw error;\n }\n}\n"],"mappings":";AAAA,SAAS,eAAqB;AAC9B,SAAS,YAAoB;AAI7B,eAAsB,MACpB,OACA,UACA,UACA,QACA;AACA,MAAI;AACF,UAAM,EAAE,OAAO,IAAI,OAAO;AAC1B,UAAM,OAAO,MAAM,OAAO,KAAK,QAAQ,EAAE,MAAM,CAAC;AAChD,QAAI,CAAC,MAAM;AACT,YAAM,IAAI,MAAM,gBAAgB;AAAA,IAElC;AAEA,UAAM,gBAAgB,MAAM,QAAQ,UAAU,KAAK,QAAQ;AAE3D,QAAI,CAAC,eAAe;AAClB,YAAM,IAAI,MAAM,gBAAgB;AAAA,IAGlC;AAGA,UAAM,YAAY,SAAS,OAAO,CAAC,EAAE,YAAY,IAAI,SAAS,MAAM,CAAC;AAGrE,QAAI,CAAC,OAAO,SAAS,GAAG;AACtB,YAAM,IAAI,MAAM,gBAAgB;AAAA,IAGlC;AAEA,UAAM,iBAAiB,MAAM,OAAO,SAAS,EAAE,QAAQ,EAAE,KAAK,KAAK,IAAI,CAAC;AACxE,QAAI,CAAC,gBAAgB;AACnB,YAAM,IAAI,MAAM,gBAAgB;AAAA,IAGlC;AAEA,UAAM,QAAQ,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,OAAO,aAAa;AAAA,MACxD,WAAW;AAAA,IACb,CAAC;AAED,UAAM,eAAe,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,OAAO,cAAc;AAAA,MAChE,WAAW;AAAA,IACb,CAAC;AAED,WAAO;AAAA,MACL,SAAS;AAAA,MACT,MAAM,EAAE,GAAG,KAAK,SAAS,EAAE;AAAA,MAC3B,CAAC,QAAQ,GAAG,EAAE,GAAG,eAAe,SAAS,EAAE;AAAA,MAC3C;AAAA,MACA;AAAA,IACF;AAAA,EACF,SAAS,OAAO;AACd,YAAQ,MAAM,gBAAgB,KAAK;AACnC,UAAM;AAAA,EACR;AACF;","names":[]}