当前位置: 首页 > news >正文

JWT(JSON Web Token)工作原理及特点

JWT定义

  • 概念:JWT是一种开放标准(RFC 7519),用于在网络上安全传输信息,常用于身份验证。
  • 比喻:类似于电子通行证,包含用户身份信息,用于身份验证和享受服务。

JWT组成部分

  • 头部(Header):包含生成JWT的信息和使用的算法类型。
  • 载荷(Payload):包含传递的数据,如身份信息和其他数据,官方规定7个字段:
    • iss:签发者
    • sub:主题
    • aud:接收者
    • exp:过期时间
    • nbf:生效时间
    • iat:签发时间
    • jti:JWT ID
  • 签名(Signature):使用密钥对头部和载荷进行签名,确保信息完整性。

JWT工作原理

  1. 生成JWT

    • 用户登录后,服务器验证用户信息,使用用户信息和密钥生成JWT字符串。
  2. 传输JWT

    • JWT存储于客户端(如Cookie、LocalStorage等),随请求发送至服务器。
  3. 验证JWT

    • 服务器接收JWT,解码获取头部、载荷和签名。
    • 使用本地密钥和算法重新生成签名,与原签名比对验证JWT有效性。
    • 检查载荷中的过期时间,确保Token有效。

JWT优势

  • 无状态:无需服务器存储会话状态信息,简化系统扩展。
  • 跨域支持:易于在不同域间传递,实现跨域授权。
  • 适应微服务架构:满足无状态的认证和授权需求,适合服务独立部署和扩展。
  • 自包含:包含认证、授权信息及其他声明,减少服务端资源依赖。
  • 扩展性:可根据需求添加自定义声明和数据,提高灵活性。

相关文章:

  • Spring Boot 中动态数据源配置与使用详解
  • 公众号(H5)及小程序的发布流程
  • 8.22-docker的部署及其使用
  • 使用VS Code开发.NET 8 环境搭建
  • 【JS|第25期】探索HTTP POST请求:请求体的演变与应用
  • 声音克隆GPT-SoVITS 2.0软件和详细的使用教程!
  • 【GitLab】使用 Docker engine安装 GitLab 2: gitlab-ce:17.3.0-ce.0 拉取
  • 【Leetcode 1512 】 好数对的数目—— 数组模拟哈希表 与 等差数列求和
  • Pandas DataFrame 数据转换处理和多条件查询
  • Spring Boot 实现定时任务
  • 设计模式——策略模式
  • 地平线—征程2(Journey 2-J2)芯片详解(15)—看门狗+温度传感器
  • Android Audio
  • Midjourney进阶-反推与优化提示词(案例实操)
  • LeetCode练习30
  • 用阿里云“无影”搭建《黑神话:悟空》电脑环境
  • OSPF配置学习笔记
  • vue项目实现postcss-pxtoremvue大屏适配
  • Modbus-TCP——Libmodbus安装和使用(Ubuntu22.04)
  • 【商城小程序功能概览】
  • 正荣地产:前4个月销售14.96亿元,控股股东已获委任联合清盘人
  • 国家主席习近平同普京总统共见记者
  • 夜读丨母亲的手擀面
  • 现场|万里云端,遇见上博
  • 建筑瞭望|融入自然的新泳池,治愈了中央公园的历史旧伤
  • 巴基斯坦军方:印度导弹袭击已造成至少3死14伤