ええ、ペソアル!ルーカスはサンパウロから来ました。
最新の Web アプリにユーザー ログインを実装する場合、JSON Web トークン (JWT) が業界標準です。しかし、多くの開発者が、JWT が実際に何であるかを理解せずに、ライブラリを使用して JWT を処理しているのを目にします。
JWT の 3 つの部分
JWT を見ると、それはドットで区切られた 3 つのランダムな文字列 (「header.payload.signature」) だけです。最大の誤解は、JWT が暗号化されているということです。 そうではありません。 ヘッダーとペイロードは単純に Base64 でエンコードされます。トークンを傍受した人は誰でもそれをデコードしてペイロードを読み取ることができます (そのため、パスワードや機密情報をトークンの中に入れてはなりません!)。
3 番目の部分である署名は、セキュリティを確保するものです。これは、トークンがサーバーによって生成され、改ざんされていないことを証明します。
デバッグ用のトークンのデコード
フロントエンド認証の問題をデバッグするときは、常にローカルの JWT Decoder ツールを使用します。トークンを貼り付けると、すぐに JSON ペイロードが表示されるので、ユーザーの役割と有効期限のタイムスタンプが正しいかどうかを確認できます。このツールは完全にブラウザ内で実行されるため、セッション トークンが第三者に公開されることはありません。ツールを理解すれば、より良いコードを作成できるようになります。