首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
靠谱的小龙虾拒绝内卷
武汉理工大学 Java
发布于湖北
关注
已关注
取消关注
@Java三段:
闲鱼面试:说说JWT工作原理?
JWT(JSON Web Token)一种开放的标准规范(RFC 7519),用于在网络上安全的传输信息,通常被用于身份验证。简单来说,你可以把 JWT 想象成一张小巧的、自包含的电子通行证。这张通行证里面包含了用户的身份信息,就像你在某个俱乐部的会员卡,上面有你的名字、会员等级等信息,拿着这张卡,你就能证明你是谁,享受相应的服务。1.JWT组成JWT 由三部分组成:头部(Header)、载荷(Payload)和签名(Signature),如下图所示:头部(Header):包含了关于生成该 JWT 的信息以及所使用的算法类型。载荷(Payload):包含了要传递的数据,例如身份信息和其他附属数据。JWT 官方规定了 7 个字段,可供使用:iss (Issuer):签发者。sub (Subject):主题。aud (Audience):接收者。exp (Expiration time):过期时间。nbf (Not Before):生效时间。iat (Issued At):签发时间。jti (JWT ID):编号。签名(Signature):使用密钥对头部和载荷进行签名,以验证其完整性。JWT 官网:https://jwt.io/2.JWT工作原理JWT 工作原理包含三部分:生成 JWT传输 JWT验证 JWT下面分别来看。1.生成JWT在用户登录时,当服务器端验证了用户名和密码的正确性后,会根据用户的信息,如用户 ID 和用户名称,加上服务器端存储的 JWT 秘钥一起来生成一个 JWT 字符串,也就是我们所说的 Token,这个 Token 是 Encoded 编码过的,类似于:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5cDecoded 解码后会得到三部分内容:头部(Header)+载荷(Payload)+签名(Signature)。头部(Header):包含了关于生成该 JWT 的信息以及所使用的算法类型。载荷(Payload):包含了要传递的数据,例如身份信息和其他附属数据。签名(Signature):使用密钥对头部和载荷进行签名,以验证其完整性。2.传输JWTJWT 通常存储在客户端的 Cookie、LocalStorage、SessionStorage 等位置,客户端在每次请求时把 JWT 放在 Authorization 头中或作为参数传递给服务器端。3.验证JWT服务器端接收到 JWT 的 Token 后,会先将 Token Decoded 解码,之后会得到头部(Header)+载荷(Payload)+签名(Signature)。然后服务器端会使用它本地存储的秘钥,以及头部(Header)中的加密算法和载荷(Payload)中的信息进行重新加密,得到一个新的签名。最后会判断 Token 的真伪,用上一步新生成的签名和 Decoded 解码得到的签名(Signature)进行判断,如果二者一致,则说明当前的 Token 有效性的、完整的,可以执行后续的操作了,否则则返回 Token 错误。当然在这一步判断时,我们通常也要看载荷(Payload)中的过期时间是否有效,如果无效,则需要提示用户重新登录。3.JWT优势JWT 相较于传统的基于会话(Session)的认证机制,具有以下优势:无需服务器存储状态:传统的基于会话的认证机制需要服务器在会话中存储用户的状态信息,包括用户的登录状态、权限等。而使用 JWT,服务器无需存储任何会话状态信息,所有的认证和授权信息都包含在 JWT 中,使得系统可以更容易地进行水平扩展。跨域支持:由于 JWT 包含了完整的认证和授权信息,因此可以轻松地在多个域之间进行传递和使用,实现跨域授权。适应微服务架构:在微服务架构中,很多服务是独立部署并且可以横向扩展的,这就需要保证认证和授权的无状态性。使用 JWT 可以满足这种需求,每次请求携带 JWT 即可实现认证和授权。自包含:JWT 包含了认证和授权信息,以及其他自定义的声明,这些信息都被编码在 JWT 中,在服务端解码后使用。JWT 的自包含性减少了对服务端资源的依赖,并提供了统一的安全机制。扩展性:JWT 可以被扩展和定制,可以按照需求添加自定义的声明和数据,灵活性更高。使用 JWT 相较于传统的基于会话的认证机制,可以减少服务器存储开销和管理复杂性,实现跨域支持和水平扩展,并且更适应无状态和微服务架构。课后思考JWT如何实现自动续期?参考 & 鸣谢www.javacn.site
点赞 7
评论 1
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
07-09 11:03
浙江大学 自动化
面试自我介绍怎么说啊到底
感觉自己每次面试的时候自我介绍都不一样总是说着说着就忘了原来想好的流程然后开始乱说
面试尴尬现场
点赞
评论
收藏
分享
07-09 15:55
门头沟学院 Java
人生第一次面试字节
就拉了个大的,大家秋招要注意,没准备好真的不要面大厂
NewCoderAA...:
之前暑期第一次面试也是字节
面试尴尬现场
点赞
评论
收藏
分享
06-12 10:50
门头沟学院 Java
为了提高就业率不挑食了
如图
你的不定积分没加C:
我怎么在学院群看到了同样的话
点赞
评论
收藏
分享
06-07 15:43
北方工业大学 C++
如图所示,小米三面
这下知道了,算法题是有时长的,要掂量着写啊
小米三面63人在聊
点赞
评论
收藏
分享
07-10 13:56
门头沟学院 机械工程师
第一反应我以为我还在高中
Beeee0927:
是缅甸园区吗
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
两年后重看秋招——后悔选择读研,可到底该怎么做?
3147
2
...
字节客户端一面
2646
3
...
秋招公司情报局,分享线索得牛币💰
2292
4
...
大厂实习恐怖日常
1939
5
...
技术不是唯一答案:计算机大学生的第一堂社会课
1879
6
...
入职云智一个月~希望消除大家对云智的误解
1776
7
...
字节暑期实习三周跑路会被拉黑吗
1640
8
...
从实习开始,我就长大了
1381
9
...
是提前批的门槛太高了吗?
1346
10
...
省内一本,女生,计算机科学与技术专业就业
1236
创作者周榜
更多
正在热议
更多
#
大厂面试初体验
#
774次浏览
16人参与
#
如果可以,你希望哪个公司来捞你
#
99549次浏览
427人参与
#
如何提高实习转正率?
#
957次浏览
21人参与
#
leader认为你工作不认真怎么办
#
30230次浏览
135人参与
#
我的国央企投递进展
#
46304次浏览
289人参与
#
国企是理工四大天坑的最好选择吗
#
13420次浏览
94人参与
#
你遇到过哪些神仙同事
#
99968次浏览
720人参与
#
机械人,你被简历秒挂的企业有哪些?
#
42710次浏览
281人参与
#
五一之后,实习真的很难找吗?
#
78174次浏览
514人参与
#
如果公司给你放一天假,你会怎么度过?
#
16763次浏览
128人参与
#
三一重工求职进展汇总
#
14739次浏览
67人参与
#
总结:哪家公司面试体验感最差
#
60910次浏览
276人参与
#
找工作时的取与舍
#
80245次浏览
567人参与
#
投递几十家公司,到现在0offer,大家都一样吗
#
245808次浏览
1789人参与
#
机械人,说说你的烦心事
#
69399次浏览
839人参与
#
通信/硬件公司求职体验
#
124069次浏览
865人参与
#
工作一周年分享
#
31000次浏览
184人参与
#
我和mentor的爱恨情仇
#
58398次浏览
350人参与
#
在国企工作的人,躺平了吗?
#
343747次浏览
3881人参与
#
技术岗笔试题求解
#
78312次浏览
1012人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务