在没有库的情况下在 JavaScript 中解码 JWT 令牌
解码 JWT(JSON Web 令牌)的有效负载对于访问和使用其声明至关重要在前端应用程序中。以下是两种无需借助库即可解码 JWT 令牌的有效方法:
浏览器:
在浏览器环境中,我们可以采用以下步骤来提取 JSON 负载:
JavaScript 代码:
<code class="javascript">function parseJwt(token) { const base64UrlPayload = token.split('.')[1]; const base64Payload = base64UrlPayload.replace(/-/g, '+').replace(/_/g, '/'); const jsonPayload = decodeURIComponent(window.atob(base64Payload).split('').map(c => { return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2); }).join('')); return JSON.parse(jsonPayload); }</code>
Node.js:
Node.js 提供了一种简单的方法来解码 JWT 负载:
JavaScript 代码:
<code class="javascript">function parseJwt(token) { const base64Payload = token.split('.')[1]; const payloadBuffer = Buffer.from(base64Payload, 'base64'); const payload = JSON.parse(payloadBuffer.toString()); return payload; }</code>
注意: 这些方法不会验证签名JWT 令牌。强烈建议使用库进行签名验证,以保证token的真实性。
以上是如何在没有外部库的情况下在 JavaScript 中解码 JWT 令牌?的详细内容。更多信息请关注PHP中文网其他相关文章!