当前位置: 首页 > 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://www.xdnf.cn/news/412579.html

相关文章:

  • 如何通过DNS解析实现负载均衡?
  • Android Exoplayer 实现多个音视频文件混合播放以及音轨切换
  • 3d模型的添加与设置
  • VMware虚拟机实例-docker启动失败
  • Linux文件编程——read函数与lseek函数
  • 火狐浏览器安装自定义插件
  • 人工智能的哲学与社会影响
  • 【时时三省】(C语言基础)字符数组的输入输出
  • 做好的QT软件,换一个笔记本打开后发现字体很小,部分字体还被控件遮挡
  • 提示工程实战指南:Google白皮书关键内容一文讲清
  • 第二十二天打卡
  • #将一个 .c 文件转变为可直接运行的文件过程及原理
  • CTF实战秘籍:跨平台文件合并与数据重构技术
  • linux-进程信号的产生
  • OJ判题系统第4期之判题机模块架构——设计思路、实现步骤、代码实现(工厂模式、代理模式的实践)
  • 嵌入式MCU和Linux开发哪个好?
  • FreeRTOS的学习记录(基础知识)
  • FPGA----petalinux开机启动自定义脚本/程序的保姆级教程(二)
  • 【超详细教程】安卓模拟器如何添加本地文件?音乐/照片/视频一键导入!
  • 利用基于LLM的概念提取和FakeCTI数据集提升网络威胁情报对抗虚假信息活动的能力
  • 区块链+农业:从田间到餐桌的信任革命
  • Ref是什么
  • 洛谷 P1082:[NOIP 2012 提高组] 同余方程 ← 求逆元
  • 代码随想录训练营第二十二天| 101.对称二叉树 100.相同的树
  • 综合实验二之grub2密文加密
  • (leetcode) 力扣100 10.和为K的子数组(前缀和+哈希)
  • 【Bootstrap V4系列】学习入门教程之 组件-模态框(Modal)
  • css 点击后改变样式
  • Megatron系列——张量并行
  • 我们来学mysql -- 安装8.4版本