41 lines
2.4 KiB
HTML
41 lines
2.4 KiB
HTML
<!-- ═══════════════ JWT ═══════════════ -->
|
|
<div class="page" id="page-jwt">
|
|
<button class="back-btn" onclick="showPage('home')">← Back to Tools</button>
|
|
<div class="section-header">
|
|
<h2><i class="fas fa-shield-alt" style="color:var(--orange)"></i> JWT Decoder</h2>
|
|
<p>Decode and inspect JSON Web Tokens.</p>
|
|
</div>
|
|
<div style="max-width:720px;">
|
|
<div class="panel-label">JWT Token</div>
|
|
<textarea id="jwtInput" placeholder="Paste your JWT token here (eyJ...)" style="min-height:100px;"></textarea>
|
|
<div class="btn-group">
|
|
<button class="btn btn-primary" onclick="decodeJWT()"><i class="fas fa-unlock"></i> Decode</button>
|
|
</div>
|
|
<div id="jwtResults"></div>
|
|
<div class="status" id="jwtStatus"></div>
|
|
<div class="api-usage">
|
|
<button class="api-usage-toggle" onclick="toggleApiUsage(this)"><span><i class="fas fa-terminal"></i> API Usage <span class="badge">REST</span></span><i class="fas fa-chevron-down"></i></button>
|
|
<div class="api-usage-body">
|
|
<div class="api-baseurl-note">All examples use <code>BASE_URL</code> — set it to your deployment URL.</div>
|
|
<div class="api-endpoint">
|
|
<span class="api-method post">POST</span><span class="api-path">/api/jwt/decode</span>
|
|
<div class="api-desc">Decode a JWT token and inspect its header, payload, and expiry.</div>
|
|
<div class="api-code"><button class="api-code-copy" onclick="copyApiCode(this)">Copy</button><span class="kw">const</span> <span class="var">BASE_URL</span> = <span class="str">"http://localhost:3000"</span>;
|
|
|
|
<span class="kw">const</span> res = <span class="kw">await</span> <span class="fn">fetch</span>(<span class="var">`${BASE_URL}/api/jwt/decode`</span>, {
|
|
method: <span class="str">"POST"</span>,
|
|
headers: { <span class="str">"Content-Type"</span>: <span class="str">"application/json"</span> },
|
|
body: JSON.<span class="fn">stringify</span>({
|
|
token: <span class="str">"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.dozjgNryP4J3jVmNHl0w5N_XgL0n3I9PlFUP0THsR8U"</span>
|
|
})
|
|
});
|
|
<span class="kw">const</span> data = <span class="kw">await</span> res.<span class="fn">json</span>();
|
|
<span class="cm">// → { success: true, header: { alg: "HS256", typ: "JWT" },
|
|
// payload: { sub: "1234567890" }, expired: null, signature: "..." }</span></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|