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优势

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值