【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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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;“这个…