web-dev-qa-db-ja.com

クライアント側でJWTトークンペイロードをデコードする方法

認証にjwtトークンを使用していますが、クライアント側でペイロード情報を読み取りたいです。今、私は次のようなことをしています:

var payload = JSON.parse(window.atob(token.split('.')[1])); 

ブラウザ内でjwtトークンを操作するより良い方法はありますか?

13
Woodsy

から https://github.com/auth0/jwt-decode

.build/jwt-decode.min.jsファイルをダウンロードして、プロジェクトに含めます。

<script src="js/jwt-decode.min.js"></script>

var token = 'eyJ0eXAiO.../// jwt token';
var decoded = jwt_decode(token);
console.log(decoded);
19
Woodsy

この単純なソリューションは、生のトークン、ヘッダー、およびペイロードを返します。

function jwtDecode(t) {
  let token = {};
  token.raw = t;
  token.header = JSON.parse(window.atob(t.split('.')[0]));
  token.payload = JSON.parse(window.atob(t.split('.')[1]));
  return (token)
}
8
Zdeněk Švarc