ToB企服应用市场:ToB评测及商务社交产业平台

标题: jwt详解 [打印本页]

作者: 大号在练葵花宝典    时间: 2024-12-12 22:13
标题: jwt详解
基本构成

JWT是由三部分组成的字符串,格式为:Header.Payload.Signature(头部负载签名) ,这三部分通过"."毗连在一起。
内部结构

头部(Header): 头部通常由两部分组成:令牌范例(通常是JWT)和所使用的签名算法(如HMAC SHA256或RSA)。 例如,头部的JSON表现可以是: { "alg": "HS256", "typ": "JWT" }  
头部进行Base64Url编码后作为jwt的一部分
载荷(Payload): 载荷部分包罗了声明,这些声明可以是关于实体(通常是用户)及其他数据的声明。声明有三种范例:注册声明、公共声明和私有声明。 例如,载荷的JSON表现可以是: { "sub": "1234567890", "name": "John Doe", "admin": true }
载荷同样必要进行Base64Url编码,形成jwt的第二部分
签名(Signature):  为了防止数据被篡改,JWT必要通过头部和载荷生成签名。签名是通过将编码后的头部和载荷与一个密钥结合,使用指定的算法生成的。 这个签名将确保JWT的完备性,只有持有密钥的人才气生成有效的签名。
签名将作为jwt的第三部分
安全性分析

jwt的安全性依赖于签名部分,只有拥有密钥的用户才气生成有效的JWT。因此,JWT在身份验证和信息交换中非常盛行。它避免了传统的session存储方式带来的服务器负担。
 jwt服务端只必要在本地即可验证真伪,而不必要向数据库中查询token
  1. function createJWT(header, payload, secret)
  2. {
  3.      encodedHeader = Base64UrlEncode(header)
  4.      encodedPayload = Base64UrlEncode(payload)                     
  5.      signature = HMACSHA256(encodedHeader + "." + encodedPayload, secret)
  6.      return encodedHeader + "." + encodedPayload + "." + signature
  7. }
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4