@eaccess/auth 0.1.20 → 0.1.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -67,6 +67,7 @@ __export(index_exports, {
67
67
  addRoleForUserBy: () => addRoleForUserBy,
68
68
  addRoleToUser: () => addRoleToUser,
69
69
  authFunctions: () => auth_functions_exports,
70
+ authenticateRequest: () => authenticateRequest,
70
71
  changePasswordForUserBy: () => changePasswordForUserBy,
71
72
  cleanupExpiredTokens: () => cleanupExpiredTokens,
72
73
  confirmResetPassword: () => confirmResetPassword,
@@ -1471,6 +1472,7 @@ var TwoFactorManager = class {
1471
1472
  var auth_functions_exports = {};
1472
1473
  __export(auth_functions_exports, {
1473
1474
  addRoleForUserBy: () => addRoleForUserBy,
1475
+ authenticateRequest: () => authenticateRequest,
1474
1476
  changePasswordForUserBy: () => changePasswordForUserBy,
1475
1477
  confirmResetPassword: () => confirmResetPassword,
1476
1478
  createUser: () => createUser,
@@ -1486,6 +1488,48 @@ __export(auth_functions_exports, {
1486
1488
  });
1487
1489
  var import_hash3 = require("@prsm/hash");
1488
1490
  var import_ms2 = __toESM(require("@prsm/ms"), 1);
1491
+ function parseCookies(cookieHeader) {
1492
+ const cookies = {};
1493
+ if (!cookieHeader) return cookies;
1494
+ for (const pair of cookieHeader.split(";")) {
1495
+ const idx = pair.indexOf("=");
1496
+ if (idx === -1) continue;
1497
+ const key = pair.slice(0, idx).trim();
1498
+ const value = pair.slice(idx + 1).trim();
1499
+ if (key) cookies[key] = decodeURIComponent(value);
1500
+ }
1501
+ return cookies;
1502
+ }
1503
+ async function authenticateRequest(config, req, sessionMiddleware) {
1504
+ const queries = new AuthQueries(config);
1505
+ if (sessionMiddleware) {
1506
+ await new Promise((resolve) => {
1507
+ sessionMiddleware(req, {}, resolve);
1508
+ });
1509
+ }
1510
+ const session = req.session;
1511
+ if (session?.auth?.loggedIn && session.auth.accountId) {
1512
+ const account2 = await queries.findAccountById(session.auth.accountId);
1513
+ if (account2 && account2.status === AuthStatus.Normal) {
1514
+ return { account: account2, source: "session" };
1515
+ }
1516
+ }
1517
+ const cookies = parseCookies(req.headers.cookie || "");
1518
+ const cookieName = config.rememberCookieName || "remember_token";
1519
+ const token = cookies[cookieName];
1520
+ if (!token) {
1521
+ return { account: null, source: null };
1522
+ }
1523
+ const remember = await queries.findRememberToken(token);
1524
+ if (!remember || /* @__PURE__ */ new Date() > remember.expires) {
1525
+ return { account: null, source: null };
1526
+ }
1527
+ const account = await queries.findAccountById(remember.account_id);
1528
+ if (!account || account.status !== AuthStatus.Normal) {
1529
+ return { account: null, source: null };
1530
+ }
1531
+ return { account, source: "remember" };
1532
+ }
1489
1533
  function validatePassword(password, config) {
1490
1534
  const minLength = config.minPasswordLength || 8;
1491
1535
  const maxLength = config.maxPasswordLength || 64;
@@ -2805,6 +2849,7 @@ async function getUserRoles(config, identifier) {
2805
2849
  addRoleForUserBy,
2806
2850
  addRoleToUser,
2807
2851
  authFunctions,
2852
+ authenticateRequest,
2808
2853
  changePasswordForUserBy,
2809
2854
  cleanupExpiredTokens,
2810
2855
  confirmResetPassword,