profileShare

rasmusjy / splitapp-frontend-vue

Read-only snapshot

No repository description.

main default branch 96 files Expires Sep 13, 2026, 9:06 AM
parseJwt.ts 623 bytes
1 export function parseJwt(token: string): Record<string, unknown> | null {
2 try {
3 const payload = token.split('.')[1]
4 if (!payload) return null
5 const json = atob(payload.replace(/-/g, '+').replace(/_/g, '/'))
6 return JSON.parse(json)
7 } catch {
8 return null
9 }
10 }
11
12 export function getUserIdFromJwt(token: string): string | null {
13 const claims = parseJwt(token)
14 if (!claims) return null
15 // ASP.NET Core uses this claim URI for NameIdentifier
16 return (
17 (claims['http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier'] as string) ??
18 (claims['sub'] as string) ??
19 null
20 )
21 }
22