Skip to content

Commit 3e00697

Browse files
authored
Merge pull request #29 from DuendeSoftware/wca/jwt-decoder/fixes
JWT Decoder fixes
2 parents 367578f + 2f824d5 commit 3e00697

File tree

1 file changed

+19
-7
lines changed

1 file changed

+19
-7
lines changed

src/Pages/Home/JwtDecoder/JwtDecoder.cshtml

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -335,7 +335,7 @@
335335
let debounceTimeout;
336336
jwtInput.on('input', function() {
337337
clearTimeout(debounceTimeout);
338-
debounceTimeout = setTimeout(async () => await parseJwt.call(this), 300); // 300ms debounce
338+
debounceTimeout = setTimeout(async () => await parseJwt.call(this), 100); // 100ms debounce
339339
});
340340
341341
@if (Model.View?.Token != null)
@@ -373,10 +373,10 @@
373373
encodedPayload: payloadInfo.length > 1 ? payloadInfo[1] : '',
374374
signature: signature
375375
};
376-
377-
await showDecodedJwt(decodedJwt.header, decodedJwt.payload, decodedJwt.encodedHeader, decodedJwt.encodedPayload, signature);
376+
378377
colorJwtInput($(this), parts, decodedJwt.encodedHeader, decodedJwt.encodedPayload, decodedJwt.signature);
379-
378+
await showDecodedJwt(decodedJwt.header, decodedJwt.payload, decodedJwt.encodedHeader, decodedJwt.encodedPayload, signature);
379+
380380
if (parts.length !== 3) {
381381
showError('Invalid JWT format. A JWT should have three parts separated by dots.');
382382
}
@@ -456,10 +456,16 @@
456456
}
457457
}
458458
}
459+
else if (originalParts.length > 1) {
460+
html += `<span class="skipped">${originalParts[0]}</span>`;
461+
}
462+
463+
html += '<span class="jwt-divider">.</span>';
464+
459465
if (encodedPayload) {
460466
const originalPayload = originalParts[1];
461467
if (originalPayload === encodedPayload) {
462-
html += '<span class="jwt-divider">.</span>' + `<span class="text-success">${encodedPayload}</span>`;
468+
html += `<span class="text-success">${encodedPayload}</span>`;
463469
}
464470
else {
465471
// Show the additional characters before and after the "encodedPayload" part that are found in originalPayload
@@ -468,14 +474,20 @@
468474
if (start > 0) {
469475
html += `<span class="skipped">${originalPayload.substring(0, start)}</span>`;
470476
}
471-
html += '<span class="jwt-divider">.</span>' + `<span class="text-success">${encodedPayload}</span>`;
477+
html += `<span class="text-success">${encodedPayload}</span>`;
472478
if (end < originalPayload.length) {
473479
html += `<span class="skipped">${originalPayload.substring(end)}</span>`;
474480
}
475481
}
476482
}
483+
else if (originalParts.length > 2) {
484+
html += `<span class="skipped">${originalParts[1]}</span>`;
485+
}
486+
487+
html += '<span class="jwt-divider">.</span>';
488+
477489
if (signature) {
478-
html += '<span class="jwt-divider">.</span>' + `<span class="text-warning">${signature}</span>`;
490+
html += `<span class="text-warning">${signature}</span>`;
479491
}
480492
target.html(html);
481493
}

0 commit comments

Comments
 (0)