🦁
JWTに関して
JWTとは
概要
JWT(JSON Web Token)とは、JSON構造で属性情報(Claim)を表現したトークンのこと。
構造
①ヘッダー②クレーム情報③署名の3つのパーツがピリオドで区切られた文字列
json
実際の取得した文字列
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2NzU4NTI2NDgsImlhdCI6MTY3NTg1MjM0OCwic3ViIjoiYWJhYmFiYUBnbWFpbC5jb20ifQ.9A7HNWoTvemfKNmWyCFT4wnNr8dUtxqBNRs3gX5dIDU
ヘッダーとクレームはそれぞれJSONがBase64でエンコードされただけの文字列なので、デコードすることでJSONを取得できる。
実際にやってみた↓
ヘッダー
- alg : 署名に使用しているアルゴリズム
- typ : トークンタイプ
クレームデータ(一部抜粋)
- exp : 有効期間終了期限
- iat : JWTの発行日時
- sub : JWTの主語となる主体の識別子
- iss : ID Tokenの発行元
- aud : クライアントの識別子
特徴
- 署名されているため改ざんをチェックできる
- URL Safe(URLに含むことができる文字のみで構成される)
利用シーン
認証の場合に使用されることが多い。
サービスにログインした時に認証情報をJWTとして保持しておく。
上の画像で言うとメールアドレスの部分。
公式サイトはこちら
→ https://jwt.io/
Discussion