ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript で JWT トークンを手動でデコードするにはどうすればよいですか?
JavaScript で JWT トークンをデコードする方法を考案する
ライブラリを利用せずに JWT トークンをデコードすることは、JavaScript で可能です。これは、トークンからペイロードを手動で抽出することで実現できます。
ペイロード抽出の手順:
1. Base64 デコード:
「.」を使用してトークンを 3 つの部分 (ヘッダー、ペイロード、署名) に分割します。キャラクター。 Base64URL エンコードを使用して 2 番目の部分 (ペイロード) をデコードします。これにより、「 」と「/」がそれぞれ「-」と「_」に置き換えられます。
2. Unicode テキスト置換:
デコードされたペイロードは Unicode テキスト シーケンスです。印刷不可能な文字 (% 記号) は、対応する ASCII コード (スペースなど) に置き換えます。
3. JSON 解析:
最後に、置換されたテキストを JSON として解析してペイロード オブジェクトを取得します。
実装:
ブラウザ:
<code class="javascript">function parseJwt(token) { var base64Url = token.split('.')[1]; var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/'); var jsonPayload = decodeURIComponent(window.atob(base64).split('').map(function(c) { return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2); }).join('')); return JSON.parse(jsonPayload); }</code>
Node.js:
<code class="javascript">function parseJwt(token) { return JSON.parse(Buffer.from(token.split('.')[1], 'base64').toString()); }</code>
注: ペイロードをデコードしても、トークンの署名は検証されません。トークンが改ざんされていないことを前提としています。
以上がJavaScript で JWT トークンを手動でデコードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。