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

jwt学习

基于token的鉴权机制也是无状态的(类似于http协议),不需要保在服务端保留用户的认证或会话信息。
构成
jwt由三部分构成:头部、payload、签名,中间用.隔开
头部(header)
包含两部分信息:声明类型、声明加密的算法
例如:
{
“alg”: “HS256”,
“typ”: “JWT”
}
然后将头部进行base64加密,构成了jwt的第一部分
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
如果可以将alg字段设成None,那么jwt的第三部分会被置空,这样任何token都是有效的,即造成任意用户访问
payload
存放数据有效信息的地方,包含三部分:标准中注册的声明、公共的声明、私有的声明
标准中注册的声明:
● iss: jwt签发者
● sub: jwt所面向的用户
● aud: 接收jwt的一方
● exp: jwt的过期时间,这个过期时间必须要大于签发时间
● nbf: 定义在什么时间之前,该jwt都是不可用的.
● iat: jwt的签发时间
● jti: jwt的唯一身份标识,主要用来作为一次性token,从而回避重放攻击。
公共的声明 :
可以添加任何信息,一般添加用户的相关信息或其他业务需要的必要信息
私有的声明:
是提供者和消费者所共同定义的声明
例如:
{
“exp”: 1746333666,
“iat”: 1745728866,
“iss”: “xp”,
“nbf”: 1745728866,
“user_id”: 1,
“account”: “a61ca41d”,
“temp”: false
}
进行base64加密得到jwt第二部分:
eyJleHAiOjE3NDYzMzM2NjYsImlhdCI6MTc0NTcyODg2NiwiaXNzIjoieHAiLCJuYmYiOjE3NDU3Mjg4NjYsInVzZXJfaWQiOjEsImFjY291bnQiOiJhNjFjYTQxZCIsInRlbXAiOmZhbHNlfQ

签名
这个签名由三部分组成:header(base64之后)、payload(base64之后)、scecret_key
secret_key是保存在服务端的,jwt的签发也发生在服务端,secret_key就是用来进行jwt的签发和验证。

jwt认证
客户端接收服务器端返回的jwt,并存储在cookie或localStorage中,接下来的交互都会带有jwt
jwt一般是在请求头中加入Authorization,并加上Bearer标注。例如:
fetch(‘api/user/1’, {
headers: {
‘Authorization’: 'Bearer ’ + token
}
})


文章转载自:

http://pO7BEIPZ.zLhbg.cn
http://2TcMwvMG.zLhbg.cn
http://Yt1ZX9SV.zLhbg.cn
http://RenFqsh3.zLhbg.cn
http://tNNQc8h3.zLhbg.cn
http://mO2HNKbp.zLhbg.cn
http://aeaCXBHT.zLhbg.cn
http://BmgELq8j.zLhbg.cn
http://FaIklxgl.zLhbg.cn
http://IYe1m7Ju.zLhbg.cn
http://UKcf0OXN.zLhbg.cn
http://y1XMhiQI.zLhbg.cn
http://1QJ6ZNW3.zLhbg.cn
http://ZWBFOgXv.zLhbg.cn
http://QauPUfdl.zLhbg.cn
http://JCUKpjRU.zLhbg.cn
http://jWbjw9r4.zLhbg.cn
http://LeSITguq.zLhbg.cn
http://tyqaIj7K.zLhbg.cn
http://Zs4ellDD.zLhbg.cn
http://xABhahLl.zLhbg.cn
http://algudH8I.zLhbg.cn
http://9wb7fcU2.zLhbg.cn
http://Cx6AOqBp.zLhbg.cn
http://jN4dCtH8.zLhbg.cn
http://0rVWohVS.zLhbg.cn
http://0B3kQUES.zLhbg.cn
http://jM6BcFRC.zLhbg.cn
http://feUJktUg.zLhbg.cn
http://RWDckHRv.zLhbg.cn
http://www.dtcms.com/a/186379.html

相关文章:

  • OJ判题系统第4期之判题机模块架构——设计思路、实现步骤、代码实现(工厂模式、代理模式的实践)
  • python与nodejs哪个性能高
  • 基于世界土壤数据库(HWSD)的中国土壤数据集(v1.1)(2009)
  • Elasticsearch架构原理
  • 物联网无线传感方向专业词汇解释
  • Gmsh划分网格|四点矩形
  • 深入探讨dubbo组件的实践
  • Android Exoplayer 实现多个音视频文件混合播放以及音轨切换
  • 网络爬虫学习之正则表达式
  • ECS服务器停止之后,如何启动?
  • 【Kubernetes】初识基础理论(第一篇)
  • 搭建大数据学习的平台
  • 深入掌握CSS Flex布局:从原理到实战
  • Linux入门-部署 超详细教学
  • Python训练打卡Day21
  • 小白入手搭建本地部署的Dify平台(基于Windows)
  • 图灵爬虫练习平台第十九题js逆向
  • 数模分离颠覆未来:打造数字时代核心生产力引擎
  • 记一种C#winform小程序的简易打包方式-自解压压缩文件
  • 构建Android系统UI架构方法论
  • LiveData:Android响应式编程的核心利器
  • OpenCV中Canny、Sobel和Laplacian边界检测算法原理和使用示例
  • 如何查看项目是否支持最新 Android 16K Page Size 一文汇总
  • SSTI记录
  • idea查看pom文件依赖
  • 谈AI/OT 的融合
  • upload-labs通关笔记-第2关 文件上传之MIME绕过
  • Spring急速入门
  • YOLOv5推理代码解析
  • KUKA机器人安装包选项KUKA.PLC mxAutomation软件