spangled shalalala blog

諦めたらそこで試合終了だよ。

JWTに関する雑なメモ

急遽、JWTを調べたので雑にメモしておく。

JWTはJSON Web Tokenの略。

特徴

  • 署名されているので改ざんをチェックすることができる
  • URL Safeである
  • 実際のデータはJSON文字列

仕組み

構成は以下の通り * ヘッダー * ペイロード * 署名(バイナリ文字列)

この3つの情報がピリオド区切りになっている文字列。

ヘッダー

メタ情報を含める。 * alg * 署名に使われるアルゴリズムを指定(必須) * typ * トークンタイプ(任意)。"JWT"が推奨

ペイロード

ペイロードには予約後が存在している。必須項目ではないが、役割が定義されている。 認証情報などのクレームを格納する。

署名

トークン検証用の署名。 ヘッダーとペイロードをBase64urlエンコーディングしてピリオドで結合したものから生成される。 署名はヘッダーで指定した algアルゴリズムによって生成される。

このヘッダー、ペイロード、署名をBase64urlエンコーディングしたあと、ピリオド区切りで結合した文字列データになる。

debug

デバッグについてはこちらのサイトで簡単にencode, decodeを確認できるので便利だった。

jwt.io

使用方法などはまた別途。