JWT简介

作者: majorty | 来源:发表于2019-07-21 15:50 被阅读0次

在介绍JWT之前先看一下传统校验令牌的方法,如下图:

图片.png
问题:
传统授权方法的问题是用户每次请求资源服务,资源服务都需要携带令牌访问认证服务去校验令牌的合法性,并根据令牌获取用户的相关信息,性能低下。
解决:
使用JWT的思路是,用户认证通过会得到一个JWT令牌,JWT令牌中已经包括了用户相关的信息,客户端只需要携带JWT访问资源服务,资源服务根据事先约定的算法自行完成令牌校验,无需每次都请求认证服务完成授权。
JWT令牌授权过程如下图:
图片.png
什么是JWT?
JSON Web Token(JWT)是一个开放的行业标准(RFC 7519),它定义了一种简介的、自包含的协议格式,用于
在通信双方传递json对象,传递的信息经过数字签名可以被验证和信任。JWT可以使用HMAC算法或使用RSA的公
钥/私钥对来签名,防止被篡改。
官网:https://jwt.io/
标准: https://tools.ietf.org/html/rfc7519
JWT令牌的优点:
1、jwt基于json,非常方便解析。
2、可以在令牌中自定义丰富的内容,易扩展。
3、通过非对称加密算法及数字签名技术,JWT防止篡改,安全性高。
4、资源服务使用JWT可不依赖认证服务即可完成授权。
缺点:
1、JWT令牌较长,占存储空间比较大。
1.令牌结构

通过学习JWT令牌结构为自定义jwt令牌打好基础。
JWT令牌由三部分组成,每部分中间使用点(.)分隔,比如:xxxxx.yyyyy.zzzzz

  • Header
    头部包括令牌的类型(即JWT)及使用的哈希算法(如HMAC SHA256或RSA)
    一个例子如下:
    下边是Header部分的内容
{
  "alg": "HS256",
  "typ": "JWT"
}

将上边的内容使用Base64Url编码,得到一个字符串就是JWT令牌的第一部分。

  • Payload
    第二部分是负载,内容也是一个json对象,它是存放有效信息的地方,它可以存放jwt提供的现成字段,比
    如:iss(签发者),exp(过期时间戳), sub(面向的用户)等,也可自定义字段。
    此部分不建议存放敏感信息,因为此部分可以解码还原原始内容。
    最后将第二部分负载使用Base64Url编码,得到一个字符串就是JWT令牌的第二部分。
    一个例子:
{
  "sub": "1234567890",
  "name": "456",
  "admin": true
}
  • Signature
    第三部分是签名,此部分用于防止jwt内容被篡改。
    这个部分使用base64url将前两部分进行编码,编码后使用点(.)连接组成字符串,最后使用header中声明
    签名算法进行签名。
    一个例子:
HMACSHA256(
  base64UrlEncode(header) + "." +
  base64UrlEncode(payload),
  secret)

base64UrlEncode(header) :jwt令牌的第一部分。
base64UrlEncode(payload):jwt令牌的第二部分。
secret:签名所使用的密钥。

相关文章

  • JsonWebToken

    JWT (JsonWebToken) JWT官网['https://jwt.io/'] JWT简介 1.JWT(J...

  • FusionAuth JWT

    本文介绍基于 FusionAuth JWT 的 JWT 实现方法。 目录 FusionAuth JWT 简介 代码...

  • JWT简介

    在介绍JWT之前先看一下传统校验令牌的方法,如下图: 1.令牌结构 通过学习JWT令牌结构为自定义jwt令牌打好基...

  • JWT简介

    前言 JSON Web Token(JWT)是目前最流行的跨域身份验证解决方案。微服务常见的认证方案 一、跨域认证...

  • JWT简介

    一 JWT是什么 JWT是JSON Web Token的简称,是目前流行的跨域的认证解决方案,作为JSON对象在...

  • JWT简介

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

  • jwt

    jwt简介 JSON Web Token(JWT)是非常流行的跨域身份验证解决方案。 jwt构成 HEADER: ...

  • JWT

    JWT | 简介 全称:JSON Web Token; JWT 主要用于身份认证和信息加密; JWT 是一个简单而...

  • Spring Boot 集成 JWT 实现用户登录认证

    JWT 简介 什么是 JWT JWT 是 JSON Web Token 的缩写,是为了在网络应用环境间传递声明而执...

  • 全栈之初识JWT -- Web安全的守护神

    一、JWT 简介 JSON Web Token(JWT)是目前最流行的跨域身份验证解决方案。JWT 是一个非常轻巧...

网友评论

      本文标题:JWT简介

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