JWT(JSON Web Token)は、利用者の情報を 改ざん検知できる署名付きで、JSON にまとめた トークン です。「ジョット」と読みます。
JWTは、ドットで区切られた3つの部分でできています。
ヘッダー . ペイロード . 署名
(種類) (中身:誰か等)(本物である証明)
- ヘッダー … トークンの種類や署名方式。
- ペイロード … 「誰か」「有効期限」などの情報。
- 署名 … 秘密の鍵で作られ、中身が改ざんされていないことを保証する。
ログイン成功時にサーバーがJWTを発行し、以降のリクエストに添えることで「認証済みの誰々です」と示せます。サーバーは署名を検証するだけでよく、セッション 情報を持たずに 認証 を扱えます。この「状態を持たない(ステートレス)」性質が、複数サーバーに分散する構成や API と好相性です。
注意点として、ペイロードは暗号化ではなく 署名 なので、中身は誰でも読めます。パスワードなどの秘密情報は入れず、有効期限を適切に設けることが大切です。