Skip to content

JWT

了解jwt是什么,底层原理。

jwt字符串示例:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

设计目的:不需要服务器端存储状态,安全地传递非敏感信息。

  1. 什么是jwt

    jwt全称json web token。是一种应用在网络应用之间,安全传递信息的开放标准。通常jwt用于身份验证非敏感信息的传递。

  2. jwt的组成

    • 头部:

      json
      {
        "alg":"HS256",//加密签名算法
        "type":"JWT"
      }
    • 载荷:

      json
      {
        "sub":"1234567890",
        "name":"John Doe",
        "admin":"true"
      }
      //“sub” 属于标准声明,“name” 和 “admin”属于私有声明

      标准声明:该开放标准预先定义好的一些字段。

      公共声明:是自定义的声明,用于在特定应用程序中共享信息。

      私有声明:用于在同意双方之间共享信息,通常不会被JWT规范定义,而是由应用程序自行定义和使用。

    • 签名(字符串):

      • 签名通过对JWT头部和载荷部分进行哈希计算,确保内容未被篡改。任何对头部或载荷的修改都会导致签名失效。
      • 身份验证:签名使用密钥生成,只有持有正确密钥的服务器才能验证签名。这确保了JWT是由可信的签发方生成的。