JWTに関する雑なメモ
急遽、JWTを調べたので雑にメモしておく。
JWTはJSON Web Tokenの略。
特徴
- 署名されているので改ざんをチェックすることができる
- URL Safeである
- 実際のデータはJSON文字列
仕組み
構成は以下の通り * ヘッダー * ペイロード * 署名(バイナリ文字列)
この3つの情報がピリオド区切りになっている文字列。
ヘッダー
メタ情報を含める。 * alg * 署名に使われるアルゴリズムを指定(必須) * typ * トークンタイプ(任意)。"JWT"が推奨
ペイロード
ペイロードには予約後が存在している。必須項目ではないが、役割が定義されている。 認証情報などのクレームを格納する。
署名
トークン検証用の署名。
ヘッダーとペイロードをBase64urlエンコーディングしてピリオドで結合したものから生成される。
署名はヘッダーで指定した alg
のアルゴリズムによって生成される。
このヘッダー、ペイロード、署名をBase64urlエンコーディングしたあと、ピリオド区切りで結合した文字列データになる。
debug
デバッグについてはこちらのサイトで簡単にencode, decodeを確認できるので便利だった。
使用方法などはまた別途。