This commit is contained in:
45
lib/auth.ts
45
lib/auth.ts
@ -19,7 +19,46 @@ export type AuthSession = {
|
||||
};
|
||||
|
||||
export const SESSION_COOKIE = "wa_inbox_session";
|
||||
const SESSION_TTL_SECONDS = 60 * 60 * 24 * 7;
|
||||
const DEFAULT_SESSION_TTL_SECONDS = 60 * 60 * 24 * 7;
|
||||
const SESSION_TTL_SECONDS = getConfiguredSessionTtlSeconds(process.env.SESSION_TTL_SECONDS);
|
||||
export const SESSION_COOKIE_DOMAIN = process.env.SESSION_COOKIE_DOMAIN?.trim() || "";
|
||||
export const SESSION_COOKIE_SECURE_ENV = process.env.COOKIE_SECURE?.trim().toLowerCase() || "";
|
||||
|
||||
function getConfiguredSessionTtlSeconds(raw: string | undefined) {
|
||||
if (typeof raw === "string" && raw.trim().length > 0) {
|
||||
const parsed = Number(raw.trim());
|
||||
if (Number.isFinite(parsed) && parsed > 0) {
|
||||
return Math.floor(parsed);
|
||||
}
|
||||
}
|
||||
|
||||
const legacyHours = Number(process.env.SESSION_TTL_HOURS);
|
||||
if (Number.isFinite(legacyHours) && legacyHours > 0) {
|
||||
return Math.floor(legacyHours * 60 * 60);
|
||||
}
|
||||
|
||||
return DEFAULT_SESSION_TTL_SECONDS;
|
||||
}
|
||||
|
||||
export function getSessionTtlSeconds() {
|
||||
return SESSION_TTL_SECONDS;
|
||||
}
|
||||
|
||||
function parseCookieDomain() {
|
||||
if (!SESSION_COOKIE_DOMAIN) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
if (SESSION_COOKIE_DOMAIN === "localhost" || SESSION_COOKIE_DOMAIN === "127.0.0.1") {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
return SESSION_COOKIE_DOMAIN;
|
||||
}
|
||||
|
||||
export function getSessionCookieDomain() {
|
||||
return parseCookieDomain();
|
||||
}
|
||||
const AUTH_SECRET = process.env.AUTH_SECRET;
|
||||
const SESSION_ITERATIONS = 120000;
|
||||
|
||||
@ -238,8 +277,8 @@ export async function parseSessionCookie(raw: string) {
|
||||
|
||||
return {
|
||||
userId,
|
||||
role: role as UserRole,
|
||||
tenantId,
|
||||
role: role as UserRole,
|
||||
tenantId,
|
||||
tenantName: "",
|
||||
fullName: "",
|
||||
email: "",
|
||||
|
||||
Reference in New Issue
Block a user