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

十八、【用户认证篇】安全第一步:基于 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.xdnf.cn/news/12223.html

相关文章:

  • 物流瘫痪预警:亚马逊多仓爆仓,卖家如何抢占夏季性价比市场?
  • 【Android基础回顾】五:AMS(Activity Manager Service)
  • 【Java Web】9.Maven高级
  • AI编程助手入门指南:GitHub Copilot、Cursor与Claude的安装与基础使用
  • [ Qt ] | 与系统相关的操作(三):QFile介绍和使用
  • 零碳园区:多维构建绿色标杆,开启美丽中国新纪元
  • 抑郁症患者数据分析
  • Redis大量key集中过期怎么办
  • 环境变量深度解析:从配置到内核的全链路指南
  • DAY 22 Kaggle 比赛
  • 简化复杂系统的优雅之道:深入解析 Java 外观模式
  • 无人机军用与民用技术对比分析
  • C++自定义简单的内存池
  • 数据分析实战2(Tableau)
  • 极昆仑HybridRAG方案:突破原生 RAG 瓶颈,开启大模型应用新境界
  • 企业管理中,商业智能BI主要做哪些事情?
  • 优化学习笔记
  • 网络安全面试题目(无答案)
  • OrCAD X Capture CIS设计小诀窍系列第二季--03.如何在Capture中输出带有目录和元器件信息的PDF
  • 数数科技正式加入上海市人工智能协会,共筑DATA×AI新基建
  • 全球IP归属地查询接口如何用C#进行调用?
  • Dify应用类型和工作流介绍
  • Postgresql源码(146)二进制文件格式分析
  • 贪心,回溯,动态规划
  • 打通印染车间“神经末梢”:DeviceNet转Ethernet/IP连接机器人的高效方案
  • 03 Deep learning神经网络的编程基础 代价函数(Cost function)--吴恩达
  • Mysql锁及其分类
  • Neko虚拟浏览器远程协作方案:Docker+内网穿透技术部署实践
  • 使用ZYNQ芯片和LVGL框架实现用户高刷新UI设计系列教程(第十五讲)
  • WebRTC中的几个Rtp*Sender