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

JAVA WEB学习18

一、JWT 核心概念(新手友好版)
JWT(JSON Web Token)是一种无状态的身份认证方式,替代传统的 Session:
登录成功后,服务器生成一个加密的 token 返回给前端;
前端后续请求都在请求头中携带这个 token;
服务器通过拦截器校验 token 的合法性,无需存储用户状态(无状态)。
优势:支持分布式部署(Session 存在服务器,分布式环境需共享,JWT 无需)。
二、前置准备:添加 JWT 依赖
在 Spring Boot 项目的pom.xml中新增 JWT 依赖(阿里的 JJWT 工具,简化 JWT 操作):
三、核心实现步骤

  1. 编写 JWT 工具类(生成 / 校验 token)
    创建com.example.utils.JwtUtil.java,封装 JWT 的核心操作:
  2. 新增登录相关接口
    (1)登录请求参数封装(LoginDTO.java)
    创建com.example.dto.LoginDTO.java,接收前端登录参数:
    (2)扩展 UserMapper(添加登录查询)
    修改com.example.mapper.UserMapper.java:
    (3)扩展 UserService(添加登录业务)
    修改com.example.service.UserService.java:
    (4)实现登录业务(UserServiceImpl.java)
    修改com.example.service.impl.UserServiceImpl.java:
    (5)编写登录接口(UserController.java)
    修改com.example.controller.UserController.java,新增登录接口:
  3. 编写 JWT 拦截器(校验 token)
    (1)JWT 拦截器(JwtInterceptor.java)
    创建com.example.interceptor.JwtInterceptor.java:
    (2)配置拦截器(WebConfig.java)
    创建com.example.config.WebConfig.java,注册拦截器并配置拦截规则:
    四、测试验证
  4. 登录接口测试(PostMan / 浏览器插件)
    请求地址:POST http://localhost:8080/user/login
    请求体(JSON):
    响应结果(成功):
  5. 带 token 访问用户列表接口
    请求地址:GET http://localhost:8080/user/list
    请求头添加:Authorization: Bearer 上面生成的token
    响应结果:返回用户列表(校验通过)。
  6. 无 token / 无效 token 访问
    直接访问/user/list,会返回:
    五、关键补充(企业级优化点)
    密码加密:实际项目中,数据库存储的密码需提前用 MD5/BCrypt 加密,而非明文;
    秘钥配置:JWT 的secret建议放在配置文件(application.yml)中,而非硬编码:
    token 刷新:可添加「刷新 token」接口,避免 token 过期后用户重新登录;
    敏感信息过滤:返回用户信息时,排除密码等敏感字段(可通过 MyBatis 查询指定字段)。
    总结
    JWT 登录的核心流程:登录生成 token → 前端携带 token 请求 → 拦截器校验 token;
    JWT 工具类封装了「生成、解析、校验」token 的核心方法,是整个流程的基础;
    拦截器通过addPathPatterns/excludePathPatterns控制拦截范围,确保登录接口无需校验。
http://www.jsqmd.com/news/421607/

相关文章:

  • OpenClaw那么火,但又那么贵,如何降本?只看这篇
  • 香氛香薰定制、礼品与精油+机场香氛香薰推荐,覆盖多元需求 - 包罗万闻
  • 2026年2月京东e卡回收商家推荐,极速回款与隐私保护口碑之选 - 品牌鉴赏师
  • 口碑甄选十大本科留学机构:品牌彰显核心竞争力 - 博客湾
  • 2026给水管供应商经销商销售商品牌商服务商推荐,含HDPE双壁,中空壁、PVC缠绕、缠绕结构壁(B型)、FRPP加筋、PP静音、塑钢缠绕 - 速递信息
  • 2026年2月液压数控剪板机企业推荐,实力品牌深度解析采购无忧之选 - 品牌鉴赏师
  • 2026年2月隔离变压器厂家推荐,电气隔离防干扰安全防护 - 品牌鉴赏师
  • 2026年2月闲置支付宝消费券回收公众号推荐,实力平台解析变现无忧 - 品牌鉴赏师
  • 留学机构前十推荐:定制优势提升申请成功率 - 博客湾
  • 2026年2月史密斯训练器、力量训练器、综合训练器、龙门架训练器厂家综合分析 - 2026年企业推荐榜
  • 申请名校杀手锏:TOP10 本科留学机构实力担当 - 博客湾
  • 2026国内环境可靠性试验箱厂家推荐:泰美科引领中高端市场 - 博客万
  • 2026年黑龙江可靠的短视频拍摄,短视频拍摄团队公司行业热门榜单 - 品牌鉴赏师
  • 2026年2月直流稳压器公司推荐,实力品牌深度解析采购无忧之选 - 品牌鉴赏师
  • linux 安装开机自启动服务
  • 十大留学机构推荐:资深团队把控申请每一处细节 - 博客湾
  • 本科留学择校指南:十大本科留学中介优势盘点 - 博客湾
  • Git概述
  • JavaParser使用指南 - 杯酒
  • 2026年哈尔滨口碑好的抖音同城运营,抖音本地推,抖音本地商家运营公司优质品牌推荐榜 - 品牌鉴赏师
  • 试填法+动态计数
  • 2026年低代码平台最新盘点:15款标杆厂商深度解析与选型指南
  • 2026年减温减压装置厂家推荐排行榜:蒸汽/一体式/分体式/气动/电动/锅炉/汽轮机减温减压装置设备精选 - 品牌企业推荐师(官方)
  • 2026年 广告招牌厂家推荐排行榜:3D打印发光字、铝合金型材、罗马克实心字、轨道展厅发光字工厂精选 - 品牌企业推荐师(官方)
  • 精工智造,守护精密:上海临港专业电子吸塑托盘厂家解析
  • Flutter 项目结构该如何设计,才能支撑长期迭代
  • 企业短信平台选云厂商还是垂直短信平台? - Qqinqin
  • 2026年重庆公办职高精选 实力出众口碑优良 适配各类学子发展 升学就业有保障 - 深度智识库
  • 2026年 编织袋厂家推荐排行榜:饲料/化肥/大米/种子/粮食/玉米/腻子粉/砂浆/化工/矿山编织袋,专业定制与耐用品质之选 - 品牌企业推荐师(官方)
  • 记一次vs中无法找到win sdk的问题