当前位置: 首页 > 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优势

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

相关文章:

  • 【体检】程序人生之健康检查,全身体检与预防疫苗,五大传染病普筛,基因检测等
  • 汇编语言中的指令锁定:解锁高效并发编程
  • 《人工智能时代:金融投资决策的潜在系统性风险及防范策略》
  • MT7621+MT7915(MT7905)+MT7975 (W7621A6G-SDK)编译固件与升级固件方法
  • [php:\\filter]
  • Linux-环境变量
  • DISCUZ论坛中 “阅读权限10“这几个字的修改教程以及后台目录路径修改后的管理路径
  • springboot 整合spring-boot-starter-data-elasticsearch
  • Element UI中el-dialog作为子组件如何由父组件控制显示/隐藏~
  • 【vue讲解:es6导入导出语法、 vue-router简单使用、登录跳转案例、scoped的使用、elementui使用】
  • #beego的orm一直引入失败#
  • Vue插值:双大括号标签、v-text、v-html、v-bind 指令
  • 实验五之用Processing绘画
  • Apache CloudStack Official Document 翻译节选(七)
  • 动态创建 Delphi 按钮的完整指南:基于配置文件的 `TGridPanel` 实现
  • 【设计模式】工厂模式和抽象工厂模式
  • 【xilinx】Versal Adaptive SoC DDRMC - NoC QoS 选项卡未出现
  • 融合创新:EasyCVR视频汇聚平台云计算技术与AI技术共筑雪亮工程智能防线
  • keepalived的技术原理及其在负载均衡场景中的应用
  • 树的重心 by江河湖海
  • MySQL存储过程深入指南
  • 牛客算法小题
  • 小米SU7销量超特斯拉,新车明年上半年发布
  • 基于Java语言的光伏监控系统+光伏发电预测+光伏项目+光伏运维+光伏储能项目
  • unity json 处理
  • 如何使用DataGear零编码快速制作MQTT物联网实时数据看板
  • Mysql查询日志
  • Airtest 的使用
  • Android更改包名和签名
  • tortoisegit下载及其使用流程