frontend/app/DecodedProfile.ts (28 lines of code) (raw):

export interface JwtDataShape { aud: string; iss: string; iat: number; exp: number; sub?: string; email?: string; first_name?: string; family_name?: string; username?: string; preferred_username?: string; location?: string; job_title?: string; authmethod?: string; auth_time?: string; ver?: string; appid?: string; } export function JwtData(jwtData: object) { return new Proxy(<JwtDataShape>jwtData, { get(target, prop) { switch (prop) { default: return (<any>target)[prop] ?? null; } }, }); }