栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【JWT】

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【JWT】

JWT

1. JWT是什么?2. JWT有什么用?3. JWT的结构是怎么样的?4. JWT有什么优势?5. Bearer验证6. Maven 依赖

1. JWT是什么?

JSON Web Token是一个用于在各方之间安全地传输信息的令牌。
此令牌可以验证和信任,因为它是数字签名的。
JWT可以使用密钥(HMAC算法)或使用RSA或ECDSA的公/私钥进行签名。 2. JWT有什么用?

授权:这是JWT最常见的使用场景。用户登录后,每个后续请求都将携带JWT,从而允许用户访问该令牌允许的路由,服务和资源。单点登录是当今广泛使用JWT的一项功能,因为它的开销很小且能够在不同的域中轻松使用。

信息交换:JWT是可以在各个应用服务之间安全传输信息的好办法。

3. JWT的结构是怎么样的?

JWT由以 . 分隔的三部分组成

完整格式为 Header.Payload.Signature

xxxxx.yyyyy.zzzzz
    

Header(头): 由 令牌的类型 + 签名算法 组成JSON字符串
如
{
  "alg": "HS256",
  "typ": "JWT"
}

   1. base64UrlEncoded(Header)生成JWT的第一部分
    
Payload(负载):其中包含声明Claims。Claims是关于1个实体(用户)和附加数据。
             Claims由三种类型:注册声明,公共声明,私有声明。
如
{
  "sub": "1234567890",
  "name": "John Doe",
  "admin": true
}

   2. base64UrlEncoded(Payload)生成JWT的第二部分

Signature(签名):要创建签名部分,
   必须获取被编码的Header + 被编码的Payload + secret + Header中指定的算法,

  如 如果您想使用 HMAC SHA256 算法,签名将通过以下方式创建:
    HMACSHA256(
      base64UrlEncode(header) + "." +
      base64UrlEncode(payload),
      secret
    ) 
   3.这样就生成了JWT的第三部分
4. JWT有什么优势?

通用:因为json的通用性,所以JWT是可以进行跨语言支持的,像JAVA,JS,PHP等很多语言都支持。

紧凑:JWT的构成简单,字节占用小,可以放在HTTP请求头中,便于传输。

扩展:JWT是自我包涵的,包含了必要的所有信息,不需要在服务端保存会话信息, 非常易于应用的扩展。

5. Bearer验证

Bearer验证也属于HTTP协议标准验证,它随着OAuth协议而开始流行Bearer验证的标准请求方式:
Authorization: Bearer [BEARER_TOKEN]
Authorization: Bearer [JWT_TOKEN] 6. Maven 依赖

    
        com.auth0
        java-jwt
        3.4.0
    
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/785685.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号