import type { AuthSession, AuthUser } from '#shared/types/auth'; const SAME_SITE_SETTINGS = ['strict', 'lax', 'none'] as const; export function useAuthSession() { const config = useRuntimeConfig().public; // eslint-disable-next-line @typescript-eslint/no-explicit-any const sameSite = SAME_SITE_SETTINGS.includes(config.cookiesSameSite as any) ? (config.cookiesSameSite as (typeof SAME_SITE_SETTINGS)[number]) : 'strict'; return useCookie('auth_session', { default: () => null as AuthSession | null, secure: config.cookiesSecure, sameSite, path: '/', httpOnly: false, }); } export function setAuthSession(value: { type: 'WarrenAuth'; id: string; user: AuthUser; expiresAt: number; }) { useAuthSession().value = value; let cookie = `authorization=WarrenAuth ${value.id}; path=/; SameSite=Lax; Secure;`; const config = useRuntimeConfig().public; console.log('config', config); const cookieDomain = config.authCookieDomain; if (cookieDomain != null && cookieDomain.length > 0) { cookie += ` domain=${cookieDomain}`; } console.log(cookie); document.cookie = cookie; } export function clearAuthSession() { useAuthSession().value = null; document.cookie = ''; }