@tayar/auth
Version:
Authentication Kit for React and Next.js
71 lines (69 loc) • 2.35 kB
JavaScript
;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/index.ts
var src_exports = {};
__export(src_exports, {
login: () => login
});
module.exports = __toCommonJS(src_exports);
// src/login.ts
var import_bcrypt = require("bcrypt");
var import_jsonwebtoken = require("jsonwebtoken");
async function login(email, password, userType, config) {
try {
const { models } = config.mongoose;
const user = await models.User.findOne({ email });
if (!user) {
throw new Error("User not found");
}
const validPassword = await (0, import_bcrypt.compare)(password, user.password);
if (!validPassword) {
throw new Error("User not found");
}
const modelType = userType.charAt(0).toUpperCase() + userType.slice(1);
if (!models[modelType]) {
throw new Error("User not found");
}
const additionalData = await models[modelType].findOne({ uid: user._id });
if (!additionalData) {
throw new Error("User not found");
}
const token = (0, import_jsonwebtoken.sign)({ _id: user._id }, config.accessToken, {
expiresIn: "1h"
});
const refreshToken = (0, import_jsonwebtoken.sign)({ _id: user._id }, config.refreshToken, {
expiresIn: "7d"
});
return {
success: true,
user: { ...user.toObject() },
[userType]: { ...additionalData.toObject() },
token,
refreshToken
};
} catch (error) {
console.error("Login error:", error);
throw error;
}
}
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
login
});
//# sourceMappingURL=index.js.map