#Vue3篇: 无感刷新token的原理JSESSIONID无感刷新和JWT接口刷新

基于这个后端是怎么更新token的
为了理解后端是如何更新 Token 的,我们需要考虑一个典型的基于 Token 的身份验证流程,特别是涉及 JSESSIONID 和自定义 Token(如 JWT, JSON Web Token)的情况。
下面我将介绍两种常见的更新 Token 的机制:一种是基于会话的(使用 JSESSIONID),另一种是无状态的(使用 JWT>

基于会话的身份验证(使用 JSESSIONID)

初始登录:
用户提交用户名和密码进行登录。
服务器验证凭据,并创建一个新的会话。
服务器为该会话生成一个唯一的 JSESSIONID,并通过响应头中的 Set-Cookie 发送给客户端。
客户端保存这个 Cookie,并在后续请求中自动附带它。
Token 更新:
在基于会话的身份验证中,实际上没有所谓的“更新 Token”的过程。相反,只要用户的会话仍然有效(即没有过期或被手动销毁),服务器就会继续识别与 JSESSIONID 关联的会话。
如果会话超时或者用户主动登出,服务器会销毁会话并使 JSESSIONID 失效。此时,用户需要重新登录以创建新的会话。
无感刷新会话:
某些应用可能会实现一种“记住我”功能,允许用户在较长时间内保持登录状态。这通常通过设置较长的会话有效期来实现,或者结合持久化存储(如数据库中的记录)来延长会话寿命。
另外,有些服务器会在每次接收到带有有效 JSESSIONID 的请求时重置会话的有效期,从而实现所谓的“滑动窗口”机制,确保用户活跃期间不会轻易掉线。

使用 JWT 的无状态身份验证

对于 JWT,更新 Token 的过程更为明确,因为它涉及到具体的 Token 管理策略:

获取访问 Token:
用户成功登录后,服务器返回一个包含用户信息的 JWT,作为访问 Token。
访问 Token 通常有一个较短的有效期(例如几分钟到几小时),并且会在每次请求时由客户端发送给服务器用于身份验证。
刷新 Token:
除了访问 Token,服务器还可能发放一个刷新 Token,它的有效期更长(几天到几个月)。
当访问 Token 即将过期时,客户端可以使用刷新 Token 向服务器请求新的访问 Token。
服务器验证刷新 Token 的有效性后,签发新的访问 Token 并返回给客户端。
刷新 Token 本身也可能有过期时间,且某些系统还会限制其使用次数或频率。
无感刷新:
为了提供无缝体验,前端可以在检测到访问 Token 即将过期时自动发起刷新请求。
这种逻辑可以通过拦截器或其他中间件实现,确保用户在正常操作过程中不会因为 Token 过期而被迫重新登录。

结合 JSESSIONID 和 JWT 的混合模式

有时,开发人员会选择结合两者的优势:

使用 JSESSIONID 来管理短期会话,保证快速的身份验证。
使用 JWT 作为访问 Token,利用其轻量级和易于传输的特点。
利用刷新 Token 或其他机制来处理长期认证需求。
如何确认后端更新 Token 的方式
要确定你的应用程序具体是如何更新 Token 的,最直接的方法是查看 API 文档或询问负责后端开发的同事。

此外,还可以通过以下方式进行调查:

分析网络流量:使用浏览器开发者工具或其他 HTTP 调试工具(如 Fiddler、Charles Proxy)监控实际的请求和响应,观察 Token 是如何传递和更新的。
检查代码:如果有可能的话,直接审查后端代码,特别是与身份验证相关的部分,比如控制器、服务层以及配置文件。
测试不同场景:模拟不同的用户行为(如长时间不活动后再活动、尝试访问受保护资源等),然后观察系统的反应。
总之,无论是基于会话还是 JWT,后端更新 Token 的机制都依赖于特定的应用设计和技术栈选择。了解这些细节有助于更好地集成前端与后端之间的交互,并确保安全性和用户体验得到优化。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/498127.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python爬虫教程——7个爬虫小案例(附源码)_爬虫实例

本文介绍了7个Python爬虫小案例,包括爬取豆瓣电影Top250、猫眼电影Top100、全国高校名单、中国天气网、当当网图书、糗事百科段子和新浪微博信息,帮助读者理解并实践Python爬虫基础知识。 包含编程资料、学习路线图、源代码、软件安装包等!【…

VITUREMEIG | AR眼镜 算力增程

根据IDC发布的《2024年第三季度美国AR/VR市场报告》显示,美国市场AR/VR总出货量增长10.3%。其中,成立于2021年的VITURE增长速度令人惊艳,同比暴涨452.6%,成为历史上增长最快的AR/VR品牌。并在美国AR领域占据了超过50%的市场份额&a…

算法 class 004(选择,冒泡,插入)

选择排序&#xff1a; 刚进入 j 循环的样子 j 跳出循环后&#xff0c;b 指向最小值的坐标 然后交换 i 和 b 位置的 值 随后 i , b i , i j1; 开始新一轮的排序&#xff0c; void SelectAQort(int* arr,int size)//选择排序 {for (int i 0; i < size-1; i){ //i 的位置就是…

【Trick】获取kaggle账号的token和api(用于数据集下载)

0&#xff1a;操作背景 由于未来的科研需要用到Unet&#xff0c;但是运行学长的史山代码无法跑通&#xff0c;自己写了一个Unet并load学长的数据集效果也很差&#xff0c;于是打算从最最基础的开始&#xff0c;上github调用一个Unet并成功在公有数据集上跑一遍实例。 Unet的g…

深入理解MemCache

随着互联网应用的飞速发展&#xff0c;动态Web应用的性能问题逐渐成为开发者关注的焦点。其中&#xff0c;数据库作为系统性能的关键瓶颈&#xff0c;在用户请求量急剧增加的情况下&#xff0c;往往难以快速响应用户需求。为了解决这一问题&#xff0c;缓存技术应运而生。MemCa…

移动 APP 设计规范参考

一、界面设计规范 布局原则&#xff1a; 内容优先&#xff1a;以内容为核心进行布局&#xff0c;突出用户需要的信息&#xff0c;简化页面导航&#xff0c;提升屏幕空间利用率.一致性&#xff1a;保持界面元素风格一致&#xff0c;包括颜色、字体、图标等&#xff0c;使用户在…

redis数据结构设计

一. 数据结构简介 要搞清楚redis数据结构&#xff0c;首先需要知道和redis数据相关的三层结构&#xff1a; 五种数据类型 String&#xff08;字符串&#xff09;、List&#xff08;列表&#xff09;、Hash&#xff08;哈希&#xff09;、Set&#xff08;集合&#xff09;和 Sor…

使用npm包的工程如何引入mapboxgl-enhance/maplibre-gl-enhance扩展包

作者&#xff1a;刘大 前言 在使用iClient for MapboxGL/MapLibreGL项目开发中&#xff0c;往往会对接非EPSG:3857坐标系的地图&#xff0c;由于默认不支持&#xff0c;因此需引入mapboxgl-enhance/maplibre-gl-enhance扩展包。 在使用Vue等其他框架&#xff0c;通过npm包下载…

021-spring-springmvc

比较重要的部分 比较重要的部分 比较重要的部分 关于组件的部分 这里以 RequestMappingHandlerMapping 为例子 默认的3个组件是&#xff1a; org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping org.springframework.web.servlet.mvc.method.annotation.Requ…

使用Locust对MySQL进行负载测试

1.安装环境 pip install locust mysql-connector-python 2.设置测试环境 打开MySQL服务 打开Navicat新建查询&#xff0c;输入SQL语句 3.编写locust脚本 load_mysql.py # codingutf-8 from locust import User, TaskSet, task, between import mysql.connector import ran…

Java [后端] 开发日常记录(1)

目录 1、常用的注解 2、对字符串的处理 3、对JSON串的处理 -- The End -- 详细如下&#xff1a; 1、常用的注解 若返回的字段中有NUll&#xff0c;则不返回 JsonInclude(value JsonInclude.Include.NON_NULL) //在实体类中添加这个注解 JsonInclude(JsonInclude.Include.NON…

你有哪些Deep Learning(RNN、CNN)调参的经验?

在深度学习的实践中&#xff0c;调参是一项既艺术又科学的工作。它不仅需要理论知识的支撑&#xff0c;还需要大量的实践经验。以下是一些在RNN和CNN模型调参中积累的经验&#xff0c;希望对正在这个领域摸索的朋友们有所帮助。 1. 从成熟的开源项目开始 对于初学者来说&…

公司招产品代理,合作合同协议书怎么写?

如果你的公司招产品代理时候&#xff0c;由于合同协议不标准&#xff0c;导致客户不信任&#xff0c;或者出现过法律纠纷。这份合同协议书&#xff0c;一定能帮你解决这些问题。 标准的模版&#xff0c;各位企业老板可以直接复制套用&#xff01; 甲方&#xff08;委托方 / 产…

wxWidgets 3.2.5发布 —— 发布于2024年5月13日

稳定版3.2系列的最新版本现已在GitHub上发布&#xff0c;你可以从那里下载包含库源代码和文档的存档文件&#xff0c;以及为选定的Windows编译器&#xff08;如Microsoft Visual C、MinGW-w64和TDM-GCC&#xff09;提供的二进制文件。你还可以在线阅读此版本的更新文档&#xf…

【Ubuntu】Ubuntu server 18.04 搭建Slurm并行计算环境(包含NFS)

Ubuntu server 18.04 搭建Slurm并行计算环境&#xff08;包含NFS&#xff09; 一、Munge 认证模块 1.1、安装 munge 主节点和子节点都安装munge #安装 sudo apt update && sudo apt install munge libmunge-dev#设置开机启动 sudo systemctl enable munge sudo syste…

用css实现瀑布流布局

上效果 知识理解 column-count: 4; column-gap: 15px;实现固定四行瀑布流布局 columns: 200px auto;column-gap: 15px;由浏览器根据容器的宽度自动调整&#xff0c;尽可能一行多个200px宽度的列数 <!DOCTYPE html> <html lang"en"><head><me…

FFmpeg 编码和解码

文章目录 音频格式AACADIF音频数据交换格式ADTS音频数据传输流 音频解码音频编码 视频格式H264GOP图像组I帧&#xff0c;P帧&#xff0c;B帧H264压缩技术H264压缩级别H264视频级别H264码流结构SPSPPS 解码视频编码视频 音频格式 AAC AAC全称 Advanced Audio Coding&#xff0…

计算机的错误计算(一百九十六)

摘要 用两个大模型计算 arccos(0.444). 结果保留 4位有效数字。两个大模型的计算结果相同&#xff0c;并均有误差。 例1. 计算 arccos(0.444). 结果保留 4位有效数字。 下面是与一个大模型的对话。 以上为与一大模型的对话。 下面是与另一大模型的对话。 点评&#xff1a; &…

【pytorch】循环神经网络

如果说卷积神经网络可以有效地处理空间信息&#xff0c;那么循环神经网络则可以更好地处理序列信息。循环神经网络通过引入状态变量存储过去的信息和当前的输入&#xff0c;从而可以确定当前的输出。 1 循环神经网络 隐藏层和隐状态指的是两个截然不同的概念。隐藏层是在从输…

MySQL root用户密码忘记怎么办(Reset root account password)

在使用MySQL数据库的的过程中&#xff0c;不可避免的会出现忘记密码的现象。普通用户的密码如果忘记&#xff0c;可以用更高权限的用户&#xff08;例如root&#xff09;进行重置。但是如果root用户的密码忘记了&#xff0c;由于root用户本身就是最高权限&#xff0c;那这个方法…