auth.ts (931B)
1 'use client' 2 3 export type User = { 4 matrixId: string 5 token: string 6 homeserverUrl: string 7 openidExpiration: number 8 } 9 10 export function createSession(user: User) { 11 const localStorage = globalThis.localStorage; 12 if (localStorage) { 13 localStorage.setItem('session', JSON.stringify(user)) 14 } 15 } 16 17 export function deleteSession() { 18 const localStorage = globalThis.localStorage; 19 if (localStorage) { 20 localStorage.removeItem('session') 21 } 22 } 23 24 export function getSessionUser(): User | undefined { 25 try { 26 // Get the session from local storage 27 const sessionCookie = globalThis.localStorage?.getItem('session') 28 if (!sessionCookie) { 29 return 30 } 31 32 return JSON.parse(sessionCookie) as User 33 } catch (error) { 34 globalThis.localStorage?.removeItem('session') 35 36 console.error("Failed to verify session:", error) 37 return 38 } 39 }