当前位置: 首页 > article >正文

十八、【用户认证篇】安全第一步:基于 JWT 的前后端分离认证方案

【用户认证篇】安全第一步:基于 JWT 的前后端分离认证方案

    • 前言
      • 什么是 JWT (JSON Web Token)?
      • 准备工作
      • 第一部分:后端 Django 配置 JWT 认证
        • 1. 安装 `djangorestframework-simplejwt`
        • 2. 在 `settings.py` 中配置 `djangorestframework-simplejwt`
        • 3. 在项目的 `urls.py` 中添加 JWT 相关的 URL 端点
        • 4. 创建用户注册 API
        • 5. 保护你的其他 API 端点
        • 6. 测试后端 JWT API
      • 第二部分:前端 Vue3 集成 JWT 认证
        • 1. 更新 Pinia `userStore` 以处理 JWT Token
        • 2. 更新 `LoginView.vue` 和创建 `RegisterView.vue`
        • 3. 更新 Axios 请求拦截器 (`utils/request.ts`)
        • 4. 更新路由守卫 (`router/index.ts`)
        • 5. 更新 `App.vue` (可选,但通常 `loadTokensFromLocalStorage` 放在这里也很好)
      • 第三部分:全面测试 JWT 认证流程
    • 总结

前言

到目前为止,我们的测试平台在功能上已经相对完善了,用户可以管理项目、模块、用例、计划,执行测试并查看报告。但是,这一切操作都是在“裸奔”——没有任何用户认证和权限控制。任何人都可以访问和操作所有数据,这在实际生产环境中是绝对不可接受的。

因此,本篇文章将聚焦于为我们的测试平台构建用户认证系统。我们将采用目前前后端分离架构中非常流行的 JWT (JSON Web Token) 认证方案。

在前后端分离的应用中,传统的基于 Session 的认证方式不再适用,因为前端和后端可能部署在不同的域,Session Cookie 的跨域共享会很麻烦。JWT 提供了一种无状态的、基于 Token 的认证机制,非常适合这种场景。

这篇文章将带你

  1. 理解 JWT 的基本概念和工作原理。
  2. 在 Django 后端集成 djangorestframework-simplejwt 库,实现用户注册、登录(获取 Token)、Token 刷新和验证的 API。
  3. 在前端 Vue3 应用中,调整登录流程以调用新的 JWT 认证 API。
  4. 使用 Pinia Store 存储和管理 JWT Token。
  5. 配置 Axios 请求拦截器ÿ
http://www.lryc.cn/news/2401478.html

相关文章:

  • RabbitMQ 开机启动配置教程
  • Authpf(OpenBSD)认证防火墙到ssh连接到SSH端口转发技术栈 与渗透网络安全的关联 (RED Team Technique )
  • 组合与排列
  • 神经网络-Day45
  • 【西门子杯工业嵌入式-1-基本环境与空白模板】
  • Apache Druid
  • 使用深蓝词库软件导入自定义的词库到微软拼音输入法
  • Docker快速部署AnythingLLM全攻略
  • 使用Node.js分片上传大文件到阿里云OSS
  • 高性能分布式消息队列系统(四)
  • C#异步编程:从线程到Task的进化之路
  • [论文阅读] 人工智能+软件工程 | 用大模型优化软件性能
  • 复变函数中的对数函数及其MATLAB演示
  • 【Linux】Linux程序地址基础
  • React 项目初始化与搭建指南
  • 将图形可视化工具的 Python 脚本打包为 Windows 应用程序
  • AWS DocumentDB vs MongoDB:数据库的技术抉择
  • 无人机军用与民用技术对比分析
  • 刷leetcode hot100--矩阵6/1
  • Qt 中实现文本截断(ellipsis)的功能。Qt 提供了此方法来处理过长的文本显示问题,例如在界面中限制文本长度并添加省略号(...)
  • Cisco IOS XE WLC 任意文件上传漏洞复现(CVE-2025-20188)
  • 基于ResNet残差网络优化梯度下降算法实现图像分类
  • 群晖NAS套件历史版本资源
  • Docker轻松搭建Neo4j+APOC环境
  • 定制开发开源AI智能名片S2B2C商城小程序在无界零售中的应用与行业智能升级示范研究
  • CppCon 2015 学习:CLANG/C2 for Windows
  • Spring中@Primary注解的作用与使用
  • Spring Boot + Elasticsearch + HBase 构建海量数据搜索系统
  • [zynq] Zynq Linux 环境下 AXI BRAM 控制器驱动方法详解(代码示例)
  • 【大模型:知识图谱】--5.neo4j数据库管理(cypher语法2)