diff --git a/src/index.ts b/src/index.ts index 3cb4bcb..5f9371d 100644 --- a/src/index.ts +++ b/src/index.ts @@ -198,7 +198,12 @@ async function importKey(key: string | JsonWebKey, algorithm: SubtleCryptoImport function decodePayload(raw: string): T | undefined { try { - return JSON.parse(atob(raw)) + const binaryString = atob(raw) + const encodedString = encodeURIComponent(binaryString).replace(/%([0-9A-F]{2})/g, (match, p1) => { + return String.fromCharCode('0x' + p1); + }); + + return JSON.parse(decodeURIComponent(encodedString)); } catch { return }