1. ホーム
  2. javascript

[解決済み] ライブラリを使用せずに、javascriptでjwtトークンをデコードするにはどうすればよいですか?

2022-03-14 21:41:10

質問

JavaScriptでJWTのペイロードをデコードするにはどうすればよいですか?ライブラリなしで。トークンは、私のフロントエンドアプリケーションで消費できるペイロードオブジェクトを返すだけです。

トークンの例 xxxxxxxxx.XXXXXXXX.xxxxxxxx

そして、その結果がペイロードとなる。

{exp: 10012016 name: john doe, scope:['admin']}

解決方法は?

ユニコード・テキストJWTパーサー機能が動作する。

function parseJwt (token) {
    var base64Url = token.split('.')[1];
    var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');
    var jsonPayload = decodeURIComponent(atob(base64).split('').map(function(c) {
        return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
    }).join(''));

    return JSON.parse(jsonPayload);
};