JWTアクセストークンをデコードする – 【Auth0】
jwt.ioでデコードできますがプログラムでデコードしてみます。
node.js v18
$ npm init -y $ npm i jsonwebtoken $ touch index.js
index.js
const jwt = require('jsonwebtoken'); const accessToken = 'eyJhbGc...'; // アクセストークン const decoded = jwt.decode(accessToken, { complete: true }); console.log(decoded);
出力結果です。
{ header: { alg: 'RS256', typ: 'JWT', kid: 'bAx8XXCW8biXz3wkj5JIL' }, payload: { ... ... signature: 'emOPc5UewyEJK-ySi9Iv-77U2PF_Kw7WavVHv7i0xy0oFTHqxS3by_JKVaEG0ee1R1aiegb_TjkC1BTeACDXhA1M7-KkAZgJelgKzgE9qX3l0eNDmEzwfvDgUQFim5ufbjPRtGskJInI6KOxX1BU0OzOoqrZbA0KZk7OM-tkGAkS9Cru07YiKxKlNISv1AAgnsG5G4Ij_RNApr5gOcHw0R0GG2HSZyKl7um9sdbSDlr2dwwxvQQqM9OYWqOMUgO53MLznRcNqzFq1kDzU62oIdaiTI_b75ld9GSph4f--AAfIV4urUx0onbjtQSwB7rH9JDJYQ3I3-p8QAR2TONbe-_Q' }
header.kidはPEMエンコードされた公開鍵を取得する際に必要になります。
Java
java-jwtでトークンをデコードします。
build.gradle
implementation 'com.auth0:java-jwt:4.4.0'
javaソースです。
import com.auth0.jwt.interfaces.DecodedJWT; import com.auth0.jwt.JWT; ... DecodedJWT jwt = JWT.decode("eyJhbGc..."); // アクセストークン System.out.println(jwt.getAlgorithm()); System.out.println(jwt.getClaims()); System.out.println(jwt.getType()); System.out.println(jwt.getHeaderClaim("alg")); System.out.println(jwt.getHeaderClaim("typ")); System.out.println(jwt.getHeaderClaim("kid")); System.out.println(jwt.getSignature());
KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント