#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.pswp.cn/web/64981.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/64981.shtml
英文地址,請注明出處:http://en.pswp.cn/web/64981.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

模塊化通訊管理機在物聯網系統中的應用

安科瑞劉鴻鵬 摘要 隨著能源結構轉型和智能化電網的推進,電力物聯網逐漸成為智能電網的重要組成部分。本文以安科瑞ANet系列智能通信管理機為例,探討其在電力物聯網中的應用,包括數據采集、規約轉換、邊緣計算、遠程控制等技術實踐&#…

Python基于Gradio可視化部署機器學習應用

Gradio 是一個用于快速創建機器學習模型和用戶界面之間交互的 Python 庫。它允許你無需編寫大量前端代碼,就能將機器學習模型部署為可交互的網頁應用。以下是一個基于 Gradio 可視化部署機器學習應用的基本步驟: 安裝 Gradio: 首先&#xff0…

Springboot使用RabbitMQ實現關閉超時訂單的一個簡單示例

1.maven中引入rabbitmq的依賴&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId></dependency> 2.application.yml中進行rabbitmq相關配置&#xff1a; # rabbit…

AE Pinnacle 10x6 kW DeviceNet MDXL User r Manual

AE Pinnacle 10x6 kW DeviceNet MDXL User r Manual

vscode中調用deepseek實現AI輔助編程

來自 Python大數據分析 費弗里 1 簡介 大家好我是費老師&#xff0c;最近國產大模型Deepseek v3新版本憑借其優秀的模型推理能力&#xff0c;討論度非常之高&#x1f525;&#xff0c;且其官網提供的相關大模型API接口服務價格一直走的“價格屠夫”路線&#xff0c;性價比很高…

慧集通iPaaS集成平臺低代碼培訓-基礎篇

訓練使用素材&#xff1a; 1.數據源&#xff1a; 單號業務日期工廠倉庫物料單位數量批次0100012022-5-1210031001030001kg500202304150100012022-5-1210031001030001kg122202304150100012022-5-1210031001030001kg1250202304150100012022-5-1210031001030002kg130202304110100…

在Linux下安裝部署Tomcat教程

摘要 Tomcat是由Apache開發的要給Servlet容器,實現了對Servlet 和JSP的支持,并提供了作為Web服務器的一些特有功能,如Tomcat管理和控制平臺,安全管理和Tomcat閥等。簡單來說,Tomcat是一個由WEB應用程序的托管平臺,可以讓用戶編寫的WEB應用程序,別Tomcat所托管,并提供網…

《探秘開源大模型:AI 世界的“超級引擎”》

《探秘開源大模型:AI 世界的“超級引擎”》 一、開源大模型崛起之路二、開源大模型發展歷程回顧(一)早期奠基:理論突破與初步實踐(二)快速發展:百花齊放的模型格局(三)當下態勢:走向成熟與多元融合三、開源大模型核心技術剖析(一)Transformer 架構:基石之穩(二)…

Leetcode打卡:我的日程安排表II

執行結果&#xff1a;通過 題目 731 我的日程安排表II 實現一個程序來存放你的日程安排。如果要添加的時間內不會導致三重預訂時&#xff0c;則可以存儲這個新的日程安排。 當三個日程安排有一些時間上的交叉時&#xff08;例如三個日程安排都在同一時間內&#xff09;&#…

實現一個通用的樹形結構構建工具

文章目錄 1. 前言2. 樹結構3. 具體實現邏輯3.1 TreeNode3.2 TreeUtils3.3 例子 4. 小結 1. 前言 樹結構的生成在項目中應該都比較常見&#xff0c;比如部門結構樹的生成&#xff0c;目錄結構樹的生成&#xff0c;但是大家有沒有想過&#xff0c;如果在一個項目中有多個樹結構&…

day30-awk進階

awk模式種類 awk的模式分為這幾種 正則表達式 基本正則擴展正則比較表達式范圍表達式特殊模式 BEGINEND awk比較運算符&#xff08;語法&#xff09; 關系運算符解釋示例<小于x<y<小于等于x<y等于xy!不等于x!y>大于等于x>y>大于x>y~匹配正則x~/正則…

大語言模型(LLM)一般訓練過程

大語言模型(LLM)一般訓練過程 數據收集與預處理 收集:從多種來源收集海量文本數據,如互聯網的新聞文章、博客、論壇,以及書籍、學術論文、社交媒體等,以涵蓋豐富的語言表達和知識領域。例如,訓練一個通用型的LLM時,可能會收集數十億甚至上百億字的文本數據.清洗:去除…

數據庫新建用戶后(Host:%),報錯:localhost無法連接

存在問題 在給數據庫&#xff08;MySQL、MariaDB等&#xff09;創建了新的用戶名&#xff08;eg&#xff1a;maxscale&#xff09;后&#xff0c;無法使用新用戶名登錄&#xff0c;并報如下錯誤&#xff1a;ERROR 1045 (28000): Access denied for user maxscalelocalhost (us…

2024年大型語言模型(LLMs)的發展回顧

2024年對大型語言模型&#xff08;LLMs&#xff09;來說是充滿變革的一年。以下是對過去一年中LLMs領域的關鍵進展和主題的總結。 GPT-4的壁壘被打破 去年&#xff0c;我們還在討論如何構建超越GPT-4的模型。如今&#xff0c;已有18個組織擁有在Chatbot Arena排行榜上超越原…

數據挖掘——支持向量機分類器

數據挖掘——支持向量機分類器 支持向量機最小間隔面推導基于軟間隔的C-SVM非線性SVM與核變換常用核函數 支持向量機 根據統計學習理論&#xff0c;學習機器的實際風險由經驗風險值和置信范圍值兩部分組成。而基于經驗風險最小化準則的學習方法只強調了訓練樣本的經驗風險最小…

檢索增強生成

概述 檢索增強生成&#xff08;Retrieval-Augmented Generation&#xff0c;RAG&#xff09;是一種將信息檢索與語言模型相結合的技術。由Facebook AI Research于2020年提出&#xff0c;它把數據庫的優勢與語言模型的優勢相結合。它能讓模型從外部知識庫中檢索信息&#xff0c…

在 SQL 中,區分 聚合列 和 非聚合列(nonaggregated column)

文章目錄 1. 什么是聚合列&#xff1f;2. 什么是非聚合列&#xff1f;3. 在 GROUP BY 查詢中的非聚合列問題示例解決方案 4. 為什么 only_full_group_by 要求非聚合列出現在 GROUP BY 中&#xff1f;5. 如何判斷一個列是聚合列還是非聚合列&#xff1f;6. 總結 在 SQL 中&#…

ETL處理工具Kettle入門

1. Kettle簡介 Kettle&#xff08;現已更名為Pentaho Data Integration&#xff0c;簡稱PDI&#xff09;是一個開源的ETL工具&#xff0c;能夠進行數據的抽取&#xff08;Extract&#xff09;、轉換&#xff08;Transform&#xff09;和加載&#xff08;Load&#xff09;。它是…

petalinux2017.4對linux4.9.0打實時補丁

準備工作&#xff1a; 1.windows&#xff1a;安裝vivado 2017.4&#xff0c;xilinx sdk 2017.4 2.ubuntu16.04&#xff1a;安裝petalinux 2017 3.黑金ax7020&#xff0c;sd卡 一、準備linux內核的操作系統 1.1 Petalinux配置 Petalinux使用教程-CSDN博客非常詳細&#xf…

Maven 教程之 pom.xml 詳解

Maven 教程之 pom.xml 詳解 pom.xml 簡介 什么是 pom POM 是 Project Object Model 的縮寫,即項目對象模型。 pom.xml 就是 maven 的配置文件,用以描述項目的各種信息。 pom 配置一覽 <project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi