news 2026/3/12 8:01:23

SpringBoot中基于JWT的单token授权和续期方案

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SpringBoot中基于JWT的单token授权和续期方案

在前后端分离架构中,用户登录成功后,后端颁发JWT token至前端,该token被安全存储于LocalStorage。随后,每次请求均自动携带此token于请求头中,以验证用户身份。后端设有过滤器,拦截并校验token有效性,一旦发现过期则引导用户重新登录。

简单的说明token实现身份认证的步骤:

  1. 用户登录成功服务端返回token
  2. 之后每次用户请求都携带token,在Authorization Header中。
  3. 后端服务取出token进行decode,判断有效期及失效策略。
  4. 返回对应的成功失败

鉴于JWT包含用户信息且需保障安全,其过期时间通常设置较短。然而,这易导致用户频繁登录,尤其是在处理复杂表单时(比如在线考试),因耗时过长而遇token过期,引发不必要的登录中断和数据丢失,严重影响用户体验。如何在用户无感知状态下实现token自动续期的策略,减少频繁登录需求,确保表单数据不丢失?

解决token过期的续期问题可以有很多种不同的方案,这里举一些比较有代表性的例子,一种是单token续期,一种是双token续期。

1 单token续期

  1. 用户认证与Token生成:用户成功登录后,服务端生成一个包含必要信息的JWT(Json Web Token),并返回给客户端。此Token作为后续请求的身份验证依据。
  2. 请求携带Token:在后续的每一次API请求中,客户端都需在HTTP请求的Authorization头部字段中携带此JWT,以便服务端验证用户的身份和权限。
  3. Token管理策略:服务端设定了Token的失效时间(或失效次数)以及一个重新登录的期限阈值。每当用户登录时,服务端会记录当前的登录时间,以便后续验证使用。
  4. Token验证与响应
  • 当用户携带Token发起请求时,服务端首先根据Token的失效时间和重新登录期限进行验证。
  • 若Token有效,则正常处理请求并返回所需资源。
  • 若Token已失效但仍在重新登录期限内,服务端返回特定的错误代码提示Token已过期,同时提示客户端进行Token刷新。
  1. Token刷新机制
  • 客户端接收到Token过期错误代码后,自动调用Refresh Token接口,向服务端请求刷新Token。
  • 服务端验证请求的有效性(如检查是否仍在重新登录期限内等),通过后生成新的有效Token并返回给客户端。
  1. 使用刷新后的Token:客户端在收到新的Token后,自动替换掉旧的Token,并在后续的请求中携带此新Token继续访问服务。
  2. 强制重新登录
  • 若服务端判断当前Token的使用时长已超过了设定的重新登录期限,则不再允许通过Refresh Token接口刷新Token。
  • 此时,服务端会返回强制重新登录的错误代码给客户端,客户端接收到此代码后,应引导用户跳转至登录页面进行重新登录。

比如:

  • 将 token 过期时间设置为15分钟;
  • 前端发起请求,后端验证 token 是否过期;如果过期,前端发起刷新token请求,后端为前端返回一个新的token;
  • 前端用新的token发起请求,请求成功;
  • 如果要实现每隔72小时,必须重新登录,后端需要记录每次用户的登录时间;用户每次请求时,检查用户最后一次登录日期,如超过72小时,则拒绝刷新token的请求,请求失败,跳转到登录页面。
  • 后端还可以记录刷新token的次数,比如最多刷新50次,如果达到50次,则不再允许刷新,需要用户重新授权。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/11 5:24:51

Qwen3-4B-Instruct部署实战:4090D单卡实现256K上下文解析

Qwen3-4B-Instruct部署实战:4090D单卡实现256K上下文解析 1. 背景与技术价值 随着大模型在自然语言处理领域的广泛应用,长上下文理解能力成为衡量模型实用性的重要指标。传统大模型通常受限于8K或32K的上下文长度,在处理长文档摘要、代码库…

作者头像 李华
网站建设 2026/3/12 18:56:04

学术发表快车道! 投稿无忧,精准对接权威期刊!

学术发表快车道!投稿无忧,精准对接权威期刊!为什么找我们精准匹配 | 杜绝“万能导师”,您的研究方向决定导师团队 透明流程 | 全程可追溯,拒绝黑箱操作 体系保障 | 全研究领域内的资深专家对论文提供1对1服务方案以及全…

作者头像 李华
网站建设 2026/3/10 19:45:14

Pytest 参数化实战:高效测试 API 接口

在API自动化测试中,我们经常会面临以下问题:如何用不同的输入数据、用户权限、或边界条件来验证相同的 API 接口逻辑? 假设我们要测试一个用户创建接口 (POST /api/users)。我们需要验证: 正常创建用户。 缺少必填字段&#xff…

作者头像 李华
网站建设 2026/3/11 19:06:07

大疆Java面试被问:QUIC协议的0-RTT连接和丢包恢复机制

一、QUIC协议架构概览 1. QUIC协议栈与传统TCP/TLS对比 go 复制 下载 // QUIC协议栈层次结构 type QUICProtocolStack struct {// QUIC协议栈 // 应用层 (Application Layer)// └── HTTP/3, gRPC over QUIC, 自定义协议// 传输层 (Transport Layer)// ├── 连接管…

作者头像 李华
网站建设 2026/3/12 21:07:18

DeepSeek-R1-Distill-Qwen-1.5B推荐部署方式:Ollama一键拉取实战体验

DeepSeek-R1-Distill-Qwen-1.5B推荐部署方式:Ollama一键拉取实战体验 1. 背景与技术定位 随着大模型轻量化趋势的加速,如何在有限算力条件下实现高性能推理成为边缘计算和本地化部署的核心挑战。DeepSeek-R1-Distill-Qwen-1.5B 正是在这一背景下诞生的…

作者头像 李华
网站建设 2026/3/11 14:49:22

网络安全威胁狩猎硬核指南:入侵检测与异常分析的核心原理与实战 ### 一,网络安全漏洞 * 安全威胁是指所有能够对计算机网络信息系统的网络服务和网络信息的机密性,可用性和完整性产生阻碍,破坏

一,网络安全漏洞 安全威胁是指所有能够对计算机网络信息系统的网络服务和网络信息的机密性,可用性和完整性产生阻碍,破坏或中断的各种因素。安全威胁可分为人为安全威胁和非人为安全威胁两大类。 1,网络安全漏洞威胁 漏洞分析的…

作者头像 李华