JWT

JWT #

JSON Web Tokens

背景 #


JWT 原理 #

JWT 结构 #

JWT 由 Header, Payload, Signature 三部分组成

const token = base64urlEncoding(header) + '.' + base64urlEncoding(payload) + '.' + base64urlEncoding(signature)

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJsb2dnZWRJbkFzIjoiYWRtaW4iLCJpYXQiOjE0MjI3Nzk2Mzh9.gzSraSYS8EXBxLN_oWnFSRgCzcmJmMjLiuyu5CSpyHI

  • Header

    {
        "alg" : "HS256",
        "typ" : "JWT"
    }
    
  • Payload

    {
        "loggedInAs" : "admin",
        "iat" : 1422779638
    }
    
  • Signature

    HMAC-SHA256(
        base64urlEncoding(header) + '.' +
        base64urlEncoding(payload),
        secret
    )
    

Authorization: Bearer eyJhbGci...<snip>...yu5CSpyHI


JWT 优缺点 #

优点 #

  • JWT 把数据存储在客户端,服务端不需要存储

缺点 #

  • JWT 的 Token 无法主动失效

JWT 适用场景 #


参考 #