diff options
author | 2022-11-18 18:36:18 +0100 | |
---|---|---|
committer | 2022-11-18 18:38:50 +0100 | |
commit | bb0eca80a77c315c2abefc8f24c7468e93494d66 (patch) | |
tree | eeeb444d96428cf61138a6b01e6bed5d1a635744 /src/tools/jwt-parser/jwt-parser.service.ts | |
parent | 3e4a64551fbfef23d0bae5565799a80c7ef402cb (diff) | |
download | it-tools-bb0eca80a77c315c2abefc8f24c7468e93494d66.tar.gz it-tools-bb0eca80a77c315c2abefc8f24c7468e93494d66.tar.zst it-tools-bb0eca80a77c315c2abefc8f24c7468e93494d66.zip |
added base tool structure
Diffstat (limited to '')
-rw-r--r-- | src/tools/jwt-parser/jwt-parser.service.ts | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/tools/jwt-parser/jwt-parser.service.ts b/src/tools/jwt-parser/jwt-parser.service.ts new file mode 100644 index 0000000..120a099 --- /dev/null +++ b/src/tools/jwt-parser/jwt-parser.service.ts @@ -0,0 +1,20 @@ +import jwt_decode, { InvalidTokenError } from 'jwt-decode'; + +interface JWT { + header: Map<string, unknown>; + payload: Map<string, unknown>; +} + +export function safe_jwt_decode(raw_jwt: string): JWT { + try { + const header = jwt_decode(raw_jwt, { header: true }) as Map<string, unknown>; + const payload = jwt_decode(raw_jwt) as Map<string, unknown>; + return { header: header, payload: payload }; + } catch (e) { + if (e instanceof InvalidTokenError) { + return { header: new Map<string, unknown>(), payload: new Map<string, unknown>() }; + } else { + throw e; + } + } +} |