JWTを学習していて、私が疑問に思った事をQ&A形式で書いてみました😃
Q1: まず、JWTって何?
A1: JWTってのは、オンラインで「これオレだよ!」って証明するための通行証みたいなもの。ログインするときにこれをもらって、それを見せることで、「ほんとにあなたですね、どうぞ通ってください」とサービス側が承認してくれる!
Q2: JWTのヘッダーって何?
A2: ヘッダーってのは、その通行証の「種類とチェック方法」を教えてくれる部分。例えば、コンサートのチケットに「VIP席」とか「一般席」と書いてあるのと同じ。どんな通行証かと、どうやって本物かどうかチェックするかが書かれいる!
Q3: じゃあ、ペイロードって何?
A3: ペイロードは、通行証に書かれてる「あなたについての情報」。つまり、名前とか、通行証の有効期限。コンサートチケットで言うところの座席番号みたいなもの!
Q4: 署名って何のこと?
A4: 署名は、その通行証が「ガチで本物」だってことを証明する特別なマーク。まるで、チケットについてるホログラムシールみたいなもので、これがあると偽物じゃないってことが分かる!
Q5: JWTがなかったらどうなるの?
A5: 通行証(JWT)がないと、オンラインサービスに「本当にあなた」だって証明できなくなっちゃう。これは、チケットなしでコンサートに入ろうとするようなもの。チケットがなければ、中に入れないよね。
Q6: ユーザーIDってデータベースにあるやつ?
A6: そうそう、ユーザーIDってのは、オンラインサービスに登録したときにもらう「図書館の会員番号」みたいなもの。この番号で、サービスはあなたが誰かを判断する!
Q7: 認証と認可の違いって何?
A7: 認証は「あなたがあなたであることを証明すること」。IDカードを見せて、これオレだよって言うのが認証。一方、認可は「あなたが何をしていいかを決めること」。VIPエリアに入る権限があるかどうかをチェックするのが認可!
😖JWTの「ちょっと困るところ」 - 便利だけど完璧じゃない
Q8: JWTって便利そうだけど、デメリットはあるの?
A8: 便利だけど、ちょっとした「困るところ」もある!
-
セキュリティ問題: 通行証(JWT)をなくしたら大変!もし悪いヤツに拾われたら、その人があなたになりすましてサービスを使えちゃうかもしれない。だから、JWTを安全に保管しないといけない💦
-
有効期限の管理: この通行証には「賞味期限」があって、期限切れになると使えなくなる。でも、この期限が長すぎるとセキュリティリスクが高まるし、短すぎると使うたびに面倒になってしまう💦
-
情報の更新問題: 通行証に書かれた情報が古くなったり間違ってたりすると、新しい通行証をもらわないといけない。これがちょっと面倒くさい💦
-
スケールの問題: 大きなシステムで使うときには、これらの通行証をチェックするのに時間がかかることがある。これは、大きなイベントでチケットチェックに時間がかかるのと似てる
👯♂️JWTとAPIの「仲良し関係」 - オンラインの世界でのパートナーシップ
Q9: JWTとAPIってどんな関係なの?
A9: JWTとAPIの関係ってのは、まるで「秘密のパスワード」と「クラブの入り口」みたいなもの。APIはオンラインサービスの入り口のようなもので、そこを通るには「秘密のパスワード」(JWT)が必要
-
アクセス許可: あなたがAPIを使って特定のサービスにアクセスしたいとき、JWTがその「入場許可証」になるんだ。JWTを持っていれば、「あ、この人は入れますよ」とAPIがあなたをサービスに招き入れてくれる。
-
安全な通信: JWTは情報を暗号化しているから、あなたがAPIを通じてサービスと話すときも、その会話が安全に保たれる。まるで、秘密のメッセージを伝えるときに使う暗号のようなも。
-
効率的なやりとり: JWTのおかげで、毎回ログイン情報を入力する必要がなくなる。これは、クラブの入り口で毎回名前とパスワードを言わなくても、VIPパスを見せるだけで入れるようなもの。
調べたり学習していると、専門用語で溢れてきたのでもう少し身近に感じる事ができれば理解できるかなと思いました!
全ては理解できずとも、なるほどわからん!が、んーーなんとなくわかったに繋がれば幸いです🙇