Files
MOPC-Portal/src/lib/session-update.ts

24 lines
724 B
TypeScript
Raw Normal View History

/**
* Direct session update that bypasses useSession().update()'s `if (loading) return;` guard.
* This ensures the JWT cookie is always updated, even when another session refresh is in-flight.
*/
export async function directSessionUpdate(data: Record<string, unknown>): Promise<boolean> {
try {
// Get CSRF token
const csrfResp = await fetch('/api/auth/csrf')
if (!csrfResp.ok) return false
const { csrfToken } = await csrfResp.json()
// POST session update
const resp = await fetch('/api/auth/session', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ csrfToken, data }),
})
return resp.ok
} catch {
return false
}
}