首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
Java三段
西安电子科技大学 Java
发布于陕西
关注
已关注
取消关注
更多面试题,可以定于我的牛客专栏:
https://www.nowcoder.com/creation/manager/columnDetail/0OZ35z
@Java三段:
面试官:说说你项目中JWT的执行流程?
JWT 在目前的项目开发中使用到的频率是非常高的,因此它也是面试常问的一类问题,所以今天我们就来看看“项目中 JWT 的执行流程?”这个问题。1.什么是 JWT?JWT(JSON Web Token) 是一种开放标准(RFC 7519),用于在网络应用间安全传输信息,通常用于身份验证和信息交换。其核心特点是通过紧凑且自包含的 JSON 对象传递数据,无需服务端存储会话状态。2.JWT组成JWT 是由三部分组成的:Header(头部):通常由以下两部分组成:Token 类型:通常是 JWT。加密算法:例如 HS256(HMAC SHA-256)、RS256(RSA SHA-256)等。Payload(载荷) :JWT 的主体部分,通常为以下三类:标准声明(Registered Claims):预定义的字段,如 iss(发行者)、exp (过期时间)、sub(主题)等。公共声明(Public Claims):用户自定义的字段,例如用户 ID、用户名、角色等。私有声明(Private Claims):在特定场景下使用的字段,通常用于内部系统。Signature(签名):用于验证 Token 的完整性和防止篡改。它们之间用点“.”分隔,形成一个字符串(Token)。3.执行流程JWT 执行流程如下:在 Spring Boot 项目中,JWT 的执行流程主要分为以下步骤:1. 用户登录与令牌生成用户通过用户名和密码发起登录请求。服务端验证用户凭证,若验证成功,则使用 JWT 工具类生成令牌:Header:指定算法(如 HS256)和令牌类型(JWT)。Payload:包含用户信息(如用户 ID、角色)和声明(如过期时间 exp)。Signature:使用密钥对 Header 和 Payload 进行签名,确保令牌不可篡改。2. 客户端存储令牌服务端将生成的 JWT 返回给客户端(通常通过响应体或 Header)。客户端(如浏览器或移动端)将令牌存储在本地(如 LocalStorage 或 Cookie)。3. 请求携带令牌客户端在后续请求的 Authorization Header 中以 Bearer 格式携带 JWT。4. 服务端验证令牌拦截器/过滤器:Spring Boot 通过自定义拦截器或 Spring Security 过滤器链拦截请求,提取并验证 JWT:签名验证:使用密钥校验签名是否有效。过期检查:检查 exp 字段是否过期。用户信息提取:解析 Payload 中的用户信息(如用户 ID),用于后续权限控制。5. 授权与响应若验证通过,服务端处理请求并返回数据。若验证失败(如令牌过期或签名错误),返回 401 状态码或自定义错误信息。4.JWT核心实现代码// 生成 JWT(示例)|SECRET_KEY 为服务保存的密钥。public String generateToken(UserDetails user) {return Jwts.builder().setSubject(user.getUsername()).setExpiration(new Date(System.currentTimeMillis() + 3600 * 1000)).signWith(SignatureAlgorithm.HS256, SECRET_KEY).compact();}// 验证 JWT(示例)public boolean validateToken(String token) { try { Jwts.parser().setSigningKey(SECRET_KEY).parseClaimsJws(token); return true; } catch (Exception e) { return false; }}注意事项密钥安全:签名密钥需妥善保管,并定期修改,避免泄露。无状态性:JWT 无需服务端存储会话信息,适合分布式系统。5.JWT 优点分析JWT 相较于传统的基于会话(Session)的认证机制,具有以下优势:无需服务器存储状态:传统的基于会话的认证机制需要服务器在会话中存储用户的状态信息,包括用户的登录状态、权限等。而使用 JWT,服务器无需存储任何会话状态信息,所有的认证和授权信息都包含在 JWT 中,使得系统可以更容易地进行水平扩展。跨域支持:由于 JWT 包含了完整的认证和授权信息,因此可以轻松地在多个域之间进行传递和使用,实现跨域授权。适应微服务架构:在微服务架构中,很多服务是独立部署并且可以横向扩展的,这就需要保证认证和授权的无状态性。使用 JWT 可以满足这种需求,每次请求携带 JWT 即可实现认证和授权。自包含:JWT 包含了认证和授权信息,以及其他自定义的声明,这些信息都被编码在 JWT 中,在服务端解码后使用。JWT 的自包含性减少了对服务端资源的依赖,并提供了统一的安全机制。扩展性:JWT 可以被扩展和定制,可以按照需求添加自定义的声明和数据,灵活性更高。小结JWT 是一种用于身份验证的开放标准,由 Header、Payload、Signature 组成。它的执行流程是:用户登录后生成加密令牌、客户端存储并在请求头携带、服务端验证签名和过期时间后授权。它的优点包括无状态、跨域支持、自包含性,适用于分布式系统和微服务架构,通过签名确保数据安全。课后思考:JWT 过期后会怎样?如何实现自动续期?
点赞 4
评论 1
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
01-05 02:25
已编辑
上海国际问题研究院
已offer/普通学生秋招经验+全网最全不凡帝范梅勒校招面经
避雷⚡️本篇长文,包含说教/焦虑/工贼/人生没有很高容错率观点,请谨慎阅读。希望给像我一样普通学历、普通背景的同学一点经验,秋招上岸。普通学生秋招经验跳到🚨emoji,PVM面试经验直接跳到🌊emoji。🏫bg:上海双非硕,6个月以上快消外企sales带业绩成果实习经验,电商经验📍校招公司:Perfetti Van Melle/不凡帝范梅勒集团🕐timeline:2025/10/20网申 10/21收到测评做完 12/02AI面 12/13群面 12/14终面 12/29 offer🗺️面试地点:上海总部 15号线梅岭北路地铁站直达,line15去哪儿都方便,便利程度完胜绝大多数企...
发面经攒人品
点赞
评论
收藏
分享
01-05 20:11
蚌埠坦克学院 嵌入式软件开发
好的嵌入式简历是怎么样的
一份好的嵌入式简历,核心是技术清晰、项目真实、能力可验证。技能明确写清掌握的语言(C/C++)、平台(STM32、Linux)、协议(UART、SPI、I²C、CAN、TCP/IP),避免泛泛而谈。项目是重点项目写你真正做了什么,比如驱动开发、协议移植、性能优化、问题定位,而不是只写“参与”。体现工程能力包括调试经验、问题分析方法、内存/性能优化、代码规范意识。内容精炼一到两页,技术导向,少废话,HR 和技术面都能快速抓到重点。一句话总结:让面试官一眼看出你能上手干活,而不是只学过知识。
有深度的简历长什么样?
点赞
评论
收藏
分享
2025-12-16 17:17
门头沟学院 产品经理
这样对一个实习生真的对吗
总感觉自己没有被尊重
烤点老白薯:
他第二句话的潜台词是想让你帮他点个瑞幸或者喜茶啥的
mt对你说过最有启发的一...
点赞
评论
收藏
分享
2025-11-27 14:24
已编辑
门头沟学院 Java
华子开了?果然不是大厂
华子最近开奖了,薪资真不咋的,硕士211才20k在上海?劝退价了,华子不能算互联网大厂,只能算制造业大厂,不过要是能给到14a或者15的薪资还是很有竞争力的
khj:
华为只是厂大
校招薪资来揭秘
点赞
评论
收藏
分享
01-04 16:54
快手_机器学习算法部_机器学习算法工程师(准入职员工)
霸王茶姬内推,霸王茶姬内推码
市场部/管培生/运营岗📖 1. HR初面(电话/视频):基础筛选,约20分钟 2. 部门主管复试(现场/视频):专业能力考核,约30-40分钟 3. 总经办终面(现场):综合评估与岗位匹配度,约20分钟 TL参考:投递→1天内HR面→3天内复试→终面→2-3天出结果 - “简单自我介绍一下” ✅ 重点:突出与岗位相关的经历(如活动策划、数据分析),结合品牌调性(国风、年轻化)举例。 - “你了解霸王茶姬吗?最近的市场热点是什么?” ✅ 必答知识点: - 品牌定位:“原味鲜奶茶”赛道,对标星巴克的“东方茶饮文化” - 爆款单品:伯牙绝弦(年销1亿杯+) - 近期热点:春节翻译争议(Lunar ...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
一大波手撕正在靠近!
1.4W
2
...
🔥2026创作新起点:《新年启航计划》来袭,三大赛道等你来冲!
1.0W
3
...
百度java一面 28届的第一次大厂面试 感觉g了
5445
4
...
拥抱人机共生,锻造不可替代的“金头脑”
3739
5
...
急急急,offer帮选🙏
3267
6
...
测开劝退
3170
7
...
27前端鼠鼠快手二面
3134
8
...
面试手撕题总结
3123
9
...
实习不忙被公司要求下周再来
3087
10
...
腾讯游戏后端一面
2983
创作者周榜
更多
正在热议
更多
#
26年哪些行业会变好/更差
#
4529次浏览
95人参与
#
实习,不懂就问
#
146729次浏览
1308人参与
#
有深度的简历长什么样?
#
7642次浏览
159人参与
#
卷__卷不过你们,只能卷__了
#
2063次浏览
49人参与
#
去年的flag与今年的小目标
#
3016次浏览
92人参与
#
哪些公司在招寒假实习?
#
2797次浏览
35人参与
#
你都用AI做什么
#
2810次浏览
76人参与
#
入职第一天
#
4886次浏览
76人参与
#
写论文的崩溃时刻
#
1712次浏览
45人参与
#
实习学到最有价值的工作习惯
#
54147次浏览
433人参与
#
你最满意的offer薪资是哪家公司?
#
64133次浏览
319人参与
#
一人分享一道面试手撕题
#
10178次浏览
516人参与
#
你不能接受的企业文化有哪些
#
3394次浏览
66人参与
#
应届生应该先就业还是先择业
#
161367次浏览
814人参与
#
uu们,春招你还来吗?
#
39463次浏览
232人参与
#
AI了,我在打一种很新的工
#
125698次浏览
1304人参与
#
滴滴求职进展汇总
#
292538次浏览
2410人参与
#
听到哪句话就代表面试稳了or挂了?
#
240676次浏览
1681人参与
#
秋招你被哪家公司挂了?
#
1001469次浏览
7699人参与
#
计算机有哪些岗位值得去?
#
259084次浏览
1958人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务