【Web應用】 Java + Vue 前后端開發中的Cookie、Token 和 Swagger介紹

文章目錄

  • 前言
  • 一、Cookie
  • 二、Token
  • 三、Swagger
  • 總結

前言

在現代的 web 開發中,前后端分離的架構越來越受到歡迎,Java 和 Vue 是這一架構中常用的技術棧。在這個過程中,Cookie、Token 和 Swagger 是三個非常重要的概念。本文將對這三個詞進行詳細介紹,并探討它們在前后端開發中的應用。

一、Cookie

1. 什么是 Cookie?

Cookie 是一種在用戶的瀏覽器中存儲小塊數據的機制。它通常用于存儲用戶的會話信息,以便在用戶訪問網站時能夠保持狀態。例如,當用戶登錄后,服務器可能會向用戶的瀏覽器發送一個 Cookie,以便在后續請求中識別用戶。

2. Cookie 的特點:

  • 存儲位置:存儲在客戶端的瀏覽器中。
  • 生命周期:可以設置過期時間,過期后自動刪除。
  • 安全性:可以設置為 HttpOnly 和 Secure,以提高安全性。

3. 在 Java + Vue 中的應用:

在 Java 后端開發中,通常使用 Spring Security 等框架來管理用戶的身份驗證,并通過 Cookie 存儲用戶的登錄狀態。前端 Vue 應用在每次請求時,會自動攜帶 Cookie,從而實現用戶的狀態保持。

Java后端設置Cookie:

@GetMapping("/setCookie")
public ResponseEntity<String> setCookie(HttpServletResponse response) {Cookie cookie = new Cookie("username", "user123");cookie.setMaxAge(7 * 24 * 60 * 60); // 過期時間(秒)cookie.setPath("/"); // 作用路徑cookie.setHttpOnly(true); // 僅HTTP訪問,防止XSSresponse.addCookie(cookie);return ResponseEntity.ok("Cookie已設置");
}

Vue前端讀取Cookie:

// 使用js-cookie庫
import Cookies from 'js-cookie';// 設置Cookie
Cookies.set('username', 'user123', { expires: 7 });// 讀取Cookie
const username = Cookies.get('username');

二、Token

1. 什么是 Token?

Token 是一種用于身份驗證的字符串,通常是在用戶登錄后由服務器生成并返回給客戶端。與 Cookie 不同,Token 通常以 JSON Web Token (JWT) 的形式存在,包含了用戶的信息和簽名,用于驗證其合法性。

2. Token 的特點:

  • 無狀態:Token 不需要在服務器端存儲,所有信息都包含在 Token 中。
  • 跨域支持:Token 可以在不同的域之間使用,適合微服務架構。
  • 安全性:可以通過簽名驗證 Token 的有效性,防止偽造。

3. 在 Java + Vue 中的應用:

在 Java 后端中,使用 JWT 生成 Token,前端 Vue 應用在用戶登錄后接收到 Token,并將其存儲在本地存儲(localStorage)中。后續的 API 請求中,Vue 應用會在請求頭中攜帶 Token,從而實現身份驗證。

Java后端生成JWT:

public String generateToken(String username) {return Jwts.builder().setSubject(username).setIssuedAt(new Date()).setExpiration(new Date(System.currentTimeMillis() + 3600000)) // 1小時過期.signWith(SignatureAlgorithm.HS512, "yourSecretKey").compact();
}

Vue前端處理Token:

// 登錄后保存token
localStorage.setItem('token', response.data.token);// 在axios攔截器中添加token
axios.interceptors.request.use(config => {const token = localStorage.getItem('token');if (token) {config.headers.Authorization = `Bearer ${token}`;}return config;
});

三、Swagger

1. 什么是 Swagger?

Swagger 是一個用于 API 文檔生成的工具,可以幫助開發者設計、構建和文檔化 RESTful API。通過 Swagger,開發者可以輕松地創建 API 文檔,并提供交互式的 API 調試界面。

2. Swagger 的特點:

  • 自動生成文檔:通過注解和配置,可以自動生成 API 文檔。
  • 交互式界面:提供用戶友好的界面,方便開發者和測試人員進行接口測試。
  • 支持多種語言:支持多種編程語言和框架,易于集成。

3. 在 Java + Vue 中的應用:

在 Java 后端開發中,通常使用 Springfox 或 Springdoc 等庫來集成 Swagger。通過在控制器中添加注解,開發者可以生成 API 文檔。在 Vue 前端中,開發者可以根據 Swagger 文檔了解后端提供的接口,方便進行前端開發和調試。

Java集成Swagger:

@Configuration
@EnableSwagger2
public class SwaggerConfig {@Beanpublic Docket api() {return new Docket(DocumentationType.SWAGGER_2).select().apis(RequestHandlerSelectors.basePackage("com.your.package")).paths(PathSelectors.any()).build().apiInfo(apiInfo());}private ApiInfo apiInfo() {return new ApiInfoBuilder().title("API文檔").description("Java+Vue項目API文檔").version("1.0").build();}
}

訪問地址:http://localhost:8080/swagger-ui.html

總結

在 Java + Vue 前后端開發中,Cookie 和 Token 是實現用戶身份驗證和狀態管理的重要機制,而 Swagger 則是幫助開發者生成和維護 API 文檔的有力工具。理解這三個概念及其應用,可以幫助開發者更高效地進行前后端分離的開發工作。希望本文能為您在前后端開發中提供一些有用的參考!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/82028.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/82028.shtml
英文地址,請注明出處:http://en.pswp.cn/web/82028.shtml

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

相關文章

投稿Cover Letter怎么寫

Cover Letter控制在一頁比較好&#xff0c;簡短有力地推薦你的文章。 Dear Editors: Small objects detection in remote sensing field remains several challenges, including complex backgrounds, limited pixel representation, and dense object distribution, which c…

創建型設計模式之Prototype(原型)

創建型設計模式之Prototype&#xff08;原型&#xff09; 摘要&#xff1a; Prototype&#xff08;原型&#xff09;設計模式通過復制現有對象來創建新對象&#xff0c;避免重復初始化操作。該模式包含Prototype接口聲明克隆方法、ConcretePrototype實現具體克隆邏輯&#xff…

spark在執行中如何選擇shuffle策略

目錄 1. SortShuffleManager與HashShuffleManager的選擇2. Shuffle策略的自動選擇機制3. 關鍵配置參數4. 版本差異(3.0+新特性)5. 異常處理與調優6. 高級Shuffle服務(CSS)1. SortShuffleManager與HashShuffleManager的選擇 SortShuffleManager:默認使用,適用于大規模數據…

AUTOSAR圖解==>AUTOSAR_EXP_AIADASAndVMC

AUTOSAR高級駕駛輔助系統與車輛運動控制接口詳解 基于AUTOSAR R22-11標準的ADAS與VMC接口規范解析 目錄 1. 引言2. 術語和概念說明 2.1 坐標系統2.2 定義 2.2.1 乘用車重心2.2.2 極坐標系統2.2.3 車輛加速度/推進力方向2.2.4 傾斜方向2.2.5 方向盤角度2.2.6 道路變量2.2.7 曲率…

26考研——文件管理_文件目錄(4)

408答疑 文章目錄 二、文件目錄1、目錄的作用與結構1.1、目錄的基本概念1.2、目錄的組織形式1.2.1、單級目錄結構1.2.2、兩級目錄結構1.2.3、多級&#xff08;樹形&#xff09;目錄結構1.2.4、無環圖目錄結構 1.3、目錄的實現方式1.3.1、線性列表1.3.2、哈希表 2、文件共享與鏈…

Maven 項目中集成數據庫文檔生成工具

在 Maven 項目中&#xff0c;可以通過集成 數據庫文檔生成工具&#xff08;如 screw-maven-plugin、mybatis-generator 或 liquibase&#xff09;來自動生成數據庫文檔。以下是使用 screw-maven-plugin&#xff08;推薦&#xff09;的完整配置步驟&#xff1a; 1. 添加插件配置…

WebSocket指數避讓與重連機制

1. 引言 在現代Web應用中&#xff0c;WebSocket技術已成為實現實時通信的重要手段。與傳統的HTTP請求-響應模式不同&#xff0c;WebSocket建立持久連接&#xff0c;使服務器能夠主動向客戶端推送數據&#xff0c;極大地提升了Web應用的實時性和交互體驗。然而&#xff0c;在實…

本地部署AI工作流

&#x1f9f0; 主流 RAG / 工作流工具對比表&#xff08;含是否免費、本地部署支持與資源需求&#xff09; 工具名類型是否支持 RAG可視化目標用戶是否免費支持本地部署本地部署一般配置Dify企業級問答系統平臺??非技術 & 企業用戶? 免費版 商業版? 支持2C4G 起&…

React 第五十節 Router 中useNavigationType的使用詳細介紹

前言 useNavigationType 是 React Router v6 提供的一個鉤子&#xff0c;用于確定用戶如何導航到當前頁面。 它提供了關于導航類型的洞察&#xff0c;有助于優化用戶體驗和實現特定導航行為。 一、useNavigationType 核心用途 1.1、檢測導航方式&#xff1a; 判斷用戶是通過…

4.2.3 Spark SQL 手動指定數據源

在本節實戰中&#xff0c;我們學習了如何在Spark SQL中手動指定數據源以及如何使用format()和option()方法。通過案例演示&#xff0c;我們讀取了不同格式的數據文件&#xff0c;包括CSV、JSON&#xff0c;并從JDBC數據源讀取數據&#xff0c;展示了如何將這些數據轉換為DataFr…

【AUTOSAR OS】計數器Counter機制解析:定義、實現與應用

一、Counter的定義與作用 在AUTOSAR Classic Platform&#xff08;CP&#xff09;中&#xff0c;**Counter&#xff08;計數器&#xff09;**是系統實現時間管理的核心組件&#xff0c;用于測量時間間隔、觸發報警&#xff08;Alarm&#xff09;和調度表&#xff08;Schedule …

在機器視覺測量和機器視覺定位中,棋盤格標定如何影響精度

棋盤格標定是機器視覺(尤其是基于相機的系統)中進行相機內參(焦距、主點、畸變系數)和外參(相機相對于世界坐標系的位置和姿態)標定的經典且廣泛應用的方法。它的質量直接、顯著且多方面地影響最終的視覺測量和定位精度。 以下是棋盤格標定如何影響精度的詳細分析: 標定…

SOC-ESP32S3部分:21-非易失性存儲庫

飛書文檔https://x509p6c8to.feishu.cn/wiki/QB0Zw7GLeio4l4kyaWQcuQT3nZS 非易失性存儲 (NVS) 庫主要用于在 flash 中存儲鍵值格式的數據。 它允許我們在芯片的閃存中存儲和讀取數據&#xff0c;即使在斷電后&#xff0c;這些數據也不會丟失。 NVS 是 ESP32 flash&#xff…

讓大模型看得見自己的推理 — KnowTrace結構化知識追蹤

讓大模型“看得見”自己的推理 —— KnowTrace 結構化知識追蹤式 RAG 全解析 一句話概括:把檢索-推理“改造”成 動態知識圖構建任務,再讓 LLM 只關注這張不斷精煉的小圖 —— 這就是顯式知識追蹤的核心價值。 1. 背景:為什么 RAG 仍難以搞定多跳推理? 長上下文負擔 傳統 I…

新版智慧景區信息化系統解決方案

該智慧景區信息化系統解決方案以云 + 大數據 + 物聯網技術為核心,秉持 “匯聚聯合,突顯數據隱性價值” 理念,通過數據融合、業務融合、技術融合,構建 “營銷、服務、管理” 三位一體模式。方案涵蓋智慧票務、智能入園、精準營銷、景區管理(如用電安全監測、森林防火、客流…

人工智能在智能健康監測中的創新應用與未來趨勢

隨著人們健康意識的不斷提高和醫療資源的日益緊張&#xff0c;智能健康監測作為一種新興的健康管理方式&#xff0c;正在迅速發展。人工智能&#xff08;AI&#xff09;技術通過其強大的數據分析和預測能力&#xff0c;為智能健康監測提供了重要的技術支持。本文將探討人工智能…

python打卡day40

知識點回顧&#xff1a; 彩色和灰度圖片測試和訓練的規范寫法&#xff1a;封裝在函數中展平操作&#xff1a;除第一個維度batchsize外全部展平dropout操作&#xff1a;訓練階段隨機丟棄神經元&#xff0c;測試階段eval模式關閉dropout 導入包 # 先繼續之前的代碼 import torch …

系統性學習C語言-第十二講-深入理解指針(2)

系統性學習C語言-第十二講-深入理解指針&#xff08;2&#xff09; 1. const 修飾指針1.1 const 修飾變量1.2 const 修飾指針變量 2. 野指針2.1 野指針成因2.2 如何規避野指針2.2.1 指針初始化2.2.2 小心指針越界2.2.3 指針變量不再使用時&#xff0c;及時置 NULL &…

《高等數學》(同濟大學·第7版) 第一節《映射與函數》超詳細解析

集合&#xff08;Set&#xff09;—— 最基礎的數學容器 定義&#xff1a; 集合是由確定的、互不相同的對象&#xff08;稱為元素&#xff09;組成的整體。 表示方法&#xff1a; 列舉法&#xff1a;A {1, 2, 3} 描述法&#xff1a;B {x | x > 0}&#xff08;表示所有大于…

Spring Boot整活指南:從Helo World到“真香”定律

&#x1f4cc; 一、Spring Boot的"真香"本質&#xff08;不是996的福報&#xff09; 你以為Spring Boot只是個簡化配置的工具&#xff1f;Too young&#xff01;它其實是程序員的??摸魚加速器??。 ??經典場景還原??&#xff1a; 產品經理&#xff1a;“這個…