JSON Web Tokenはオープンスタンダードです。これは、任意の2つの機関
(ユーザー、サーバー)間で情報を転送するために使用されます。
JWTでは、ユーザーデータなどのクレームを安全に表現することができます。
JWT の定義: A JSON Web Token (JWT) is a JSON
object that is defined in RFC 7519 as a safe way to represent a
set of information between two parties. The token is composed of a header, a
payload, and a signature.
JWTの形式は以下のとおりです。
header.payload.signature
JWTの使用
- デジタル署名:
の変更はありません。
- コンパクト:
そのようにそれは非常に速いです。そしてその速い伝送はJWTをより使いやすくしす。
- 自己完結型:
ため、データベースへの2回以上の照会は避けられます。ユーザーがログインすると、ユーザー名や
パスワードなどの情報が検証され、トークンが提供されます。そのため、ユーザーが後でWebサイト
から要求を送信したときに毎回ログインする必要はありませんが、毎回トークンを渡す必要があります。
その後、JWTシステムはそのトークンを検証し、検証に合格すると情報を提供します。結論として、
JWTは認証と情報交換に役立ちます。
JWTの構造
JWTは3つの部分で構成されています。
ヘッダー、ペイロード、および署名。
ヘッダーは単純なJSONオブジェクトです
{
“alg”: “HS256”
“typ”:”JWT”
}
それは2つの分野を含んでいます、 1)Alg:HMAC
SHA256またはRSAのようなアルゴリズム。 これは、どのアルゴリズムでエンコードされているかをJWTに伝えます。 2)Typ:JWTトークンの種類 それは単にJWTであるトークンのタイプです。 このヘッダーJSONはbase64でエンコードされて、JWTのヘッダーである1番目の部分を形成します。
ペイロード:ペイロードの構造もJSONオブジェクトであり、クレームが含まれています。
クレームは、ユーザーの詳細およびトークンの有効期限など、管理者であるかどうかなど
の追加のメタデータです。ペイロードは、Base64UrlでエンコードされてJWTの2番目の
部分を形成します。
{
“sub:”:”1234567890”,
“name”:”Dave Truck”,
“admin”:true
}