type
status
date
slug
summary
tags
category
icon
password
JSON Web Tokens(JWTs)是一种用于身份验证和授权的轻量级标准,它基于令牌(token)机制。以下是JWT的工作原理的简要概述:
  1. 创建JWT
      • Header(头部):JWT的头部通常包含了两部分信息,即令牌类型(JWT)和所使用的签名算法,例如HMAC SHA256或RSA。
      • Payload(载荷):JWT的载荷包含了有关用户或其他数据的信息,这些信息被称为"claims"(声明)。有三种类型的声明:注册声明(registered claims),公共声明(public claims),和私有声明(private claims)。
      • Signature(签名):为了创建签名部分,使用头部指定的签名算法对编码后的头部、编码后的载荷和秘钥进行签名。签名用于验证JWT的完整性。
  1. 签名生成:使用头部中指定的签名算法,将编码后的头部和编码后的载荷与秘钥一起进行哈希运算生成签名。
  1. 生成JWT:将编码后的头部、编码后的载荷和签名组合成一个JWT,形成形如`Header.Payload.Signature`的字符串。
  1. 传输JWT:通常,JWT被作为HTTP请求的一部分或在请求头中发送给服务器,或者作为Cookie传输给服务器。
  1. 服务器验证JWT
      • 当服务器接收到JWT后,它会解码JWT,获取头部和载荷中的信息,以及秘钥。
      • 使用与创建JWT相同的签名算法,对解码后的头部和载荷再次进行哈希运算,然后将结果与JWT中的签名部分进行比较。
      • 如果服务器的计算签名与JWT中的签名相匹配,说明JWT未被篡改,服务器可以信任JWT中的信息。如果签名不匹配,则服务器拒绝接受JWT。
  1. 使用JWT:一旦服务器验证了JWT,它可以使用JWT中的信息来完成身份验证、授权或其他操作。例如,服务器可以提取用户ID以识别用户,或根据JWT中的声明来授予特定的权限。
JWT的工作原理基于签名而不是加密,因此JWT的内容可以被查看,但不能被篡改。只有持有正确秘钥的人才能生成有效的签名,从而成功验证JWT并使用其中的信息。这使得JWT成为一种广泛用于身份验证和授权的机制。
SpringBoot实现注解Token验证修改Swap分区大小
Loading...
Kougami
Kougami
Life Will Change
统计
文章数:
18
公告
てへぺりんこ