一言でいうと

JWTは、ユーザーが本当に本人(認証)であることを確認するための「デジタル身分証明書」です。ウェブサービスで「ログインしたよ」という情報を安全にやり取りするときに使われます。

もう少し詳しく

想像してみてください。図書館で本を借りるときに、利用者カードを提示しますよね。JWTはそれと同じような役割をします。

ユーザーがログインすると、サーバー(ウェブサービスを動かすコンピュータ)が「この人は確認済みです」という情報をまとめて、暗号化した文字列を発行します。これがJWTです。ユーザーはこの文字列を保管しておき、何かをするたびに「私はこの証明書を持っています」と見せるわけです。

サーバー側は、受け取った文字列が本物かどうかを確認するだけで、わざわざ毎回ユーザー情報をデータベース(情報を保存するところ)から探す手間が省けます。

よく使われる場面

エラーログサイトでは、ユーザーがログインするときにJWTが発行されます。サイト内で別のページに移動するたびに、このJWTを提示することで「ログイン状態を保つ」ことができます。もし不正なJWTを使おうとすると、サーバーが「これは本物ではありません」と拒否してくれます。

関連する言葉

  • 認証:本人確認
  • 暗号化:情報を隠して安全にすること
  • トークン:アクセス権を証明する印のようなもの