美文网首页
JWT(JSON Web Token)

JWT(JSON Web Token)

作者: M_lear | 来源:发表于2024-01-24 09:24 被阅读0次

由头部、载荷、签名三部分组成。
头部指定使用的签名算法。
载荷携带已认证用户的非敏感信息。
签名就是使用头部指定的签名算法对头部和载荷的签名。


使用token的好处是,服务端可以仅保存一个签名密钥,就可以进行用户认证。
典型的头部:

{
    "alg": "HS512",
    "typ": "JWT"
}

type可省略,默认值为"JWT"

载荷就是存用户信息的json。

签名就是:

HS512(  
  base64UrlEncode(header) + "." +
  base64UrlEncode(payload),
  secret))

最终的token就是对这三部分进行base64url编码,然后通过.拼接成的一个字符串。

eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjhkYmNiODA0LTkxNzAtNDIzOC1iYzhhLTczZGVmYzU3ZTIxNyJ9.HuFST57lj-7N3MSNB8JXEauOhr3BhWb1PxXLWdwqM65MZHDd8eoSAdPdHrxRP2NfPq5MUnucjGYUUKUlqT0bCQ
从JWT设计者的角度看JWT

目标:自包含(JWT本身包含了所有必要的信息,而不需要依赖于外部系统或数据库进行附加查询)

所以这就要求JWT包含所有的必要信息。这些信息的格式需要定义,设计者选择了流行的json格式。这就是JWT中的载荷(payload)。
为了防止必要信息不被篡改,所以加上了签名(signature)。
为了知道使用的签名算法,所以又加了个头部(header),头部也是json格式。

为了支持token能放到URL中使用(比如api.example.com/?token=xxx),所以将三部分都用base64url进行编码。

最后就是把三部分用分隔符连接成一个整体。设计者选择了“.”符号。

相关文章

  • 浅析JWT

    1.JWT(JSON Web Token) JSON Web Token (缩写JWT) 是目前最流行的跨域认证解...

  • 身份验证之JWT

    什么是(JWT)JSON Web Token ? 官网介绍JSON Web Token(JWT)是一个开放标准(R...

  • JSON Web Token

    JSON Web Token (JWT)是一种基于 token 的认证方案。 JSON Web Token 的结构...

  • Laravel 5.2 JWT多用户认证

    Json Web Token JWT代表Json Web Token.JWT能有效地进行身份验证并连接前后端。 降...

  • Spring Boot使用JWT和自定义注解完成用户登录认证和权

    0x00 JWT(JSON Web Token) JWT的全称是JSON Web Token,它是一种紧凑的、UR...

  • JWT简介

    JSON Web Token (JWT) 参考资料:Introduction to JSON Web Tokens...

  • JSON Web Token

    What is JSON Web Token? JSON Web Token (JWT)是一个开放标准(RFC 7...

  • JWT token认证

    本文主要讲述两方面的内容1JSON Web Token(JWT)的介绍说明2 JSON Web Token(JWT...

  • jwt教程

    未完待续 JWT是什么? JWT是JSON Web Token的缩写,即JSON Web令牌。 JWT规范 中对其...

  • JWT 概述与代码实现

    一、什么是JSON Web Token? JSON Web Token(JWT)是一个开放标准(RFC7519),...

网友评论

      本文标题:JWT(JSON Web Token)

      本文链接:https://www.haomeiwen.com/subject/zotbndtx.html