JWT -- Json Web Token

1430 ワード

JWTとは?
JWT(Json Web Token)は、オープンソースbiaozhun、軽量、携帯者ユーザー情報のjsonオブジェクトであり、サーバ側とクライアントとの相互作用を安全に行う.
JWTは軽量なので、Http Headerに入れて、サーバーとクライアントの間で迅速に対話することができます.また、データベースから再び取得することなく、ユーザ名などプライバシーにほとんど関係のないユーザ情報をJWTに格納することができる.
JWTはいつ使いますか.
  • 認証が必要:ユーザーはusername,passwordに従ってログインした後、JWTを使用してTokenをクライアントに返し、クライアントは要求時にTokenをHttp Headerに
  • 置く
    JWT詳細
  • 基本構造
  • Header
  • Payload
  • Signature

  • Headerは、アルゴリズムなどのJWTの最も基本的な情報を記述するために使用される.
    {
      "alg" : "HS256"
    }
    
    ここでは、このJWTのアルゴリズムがHS 256であることを説明する.また、HeaderについてもBase 64符号化を行います.
  • PayLoad負荷におけるプログラマによって定義されたいくつかの情報、例えば、
    {
      "username": "pm2017",
      "role": "PROJECT_MANAGER",
      "privileges": [
      "RETRIVE_USER"
      ],
      "exp": 1506609371
    }
    
  • ここでPayLoadの内容はusername、role、privileges、expの期限切れです.
  • Signatureは、HeaderとPayLoadが符号化する文字列を.で接続し、HS 256(Headerに設定アルゴリズム)アルゴリズムを用いてサービス側に記憶された鍵secretとともに暗号化し、得られる値はSignature
  • である.
    だから、完全なJWTは:header.payload.signature
    まとめ
  • の欠点
  • が発行された後、その有効期間内にずっと有効で、期限切れの
  • を待つしかない.
  • の利点
  • JWTの構成は簡単で、バイトの占有量は小さくて、
  • を伝送するのに便利です
  • は、サービス側に情報を保存することなく、
  • を容易に拡張できる.
  • セキュリティ関連
  • は、JWTのPayload部分に機密情報
  • を格納すべきではない.
  • secret
  • を保存
  • JWTを使用すると、サービス側はTokenを検証し、検証によって対応するリソースが返されます.全体の流れは下図のようです: