SpringBoot继承JWT token实现权限的验证(从头开始)

目录

概述

前提:我们需要知道的文件的用处

第1步:数据库的连接

第2步:定义一个标准化响应对象的类

第3步:编写请求数据库数据代码

第4步:自定义异常处理

第5步:导入依赖

第6步:自定义拦截器

第7步:配置拦截器

第8步:生成token

第9步:开始测试代码

第10步:vue请求示例

扩展:自定义注解AuthAccess

总结


概述

在开发后端接口时,数据的直接暴露可能会导致安全问题。为了应对这种情况,我们需要在访问接口时进行拦截验证,以确保只有经过身份验证的用户才能访问数据。为实现这一目的,我们需要编写一个拦截器,用于检查每次请求中是否携带有效的token(即身份验证令牌)。只有当用户携带有效token时,才能进行数据访问操作;否则,将对请求进行拦截并禁止访问敏感数据。

通过编写拦截器实现身份验证,我们能够提高系统的安全性并保护数据免受未经授权的访问。这种做法有助于规避潜在的安全风险,有效保障系统的信息安全。因此,在开发过程中,拦截器的设计和使用至关重要,可以为系统的稳定性和安全性提供有效保障。


考虑到有的朋友是小白,我从头开始讲起,不需要的朋友可以直接跳到第4步开始~

前提:我们需要知道的文件的用处

1.controller文件:控制器负责处理用户请求,并返回响应,充当了前端与后端之间的桥梁

2.service文件:服务层,用于逻辑的书写,如登录注册

3.entity文件:实体类,通常映射到数据库中的表,每个实体类对应一个数据库表

4.mapper文件:用于定义SQL查询和实体类之间的映射

5.exception文件:异常处理,自定义异常类可以提供更详细的错误信息

6.common文件:存放一些通用的工具类、常量、配置

第1步:数据库的连接

1.这是我创建的一个比较简单的数据表

  • 数据库名:test_data
  • 数据表名:user

2.打开application.yml文件,配置数据库的连接

#用来配置端口,和数据库的连接
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3308/test_data?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2b8 #本地数据的端口号和user是我创建的数据库
    username: root
    password: 123456

3.创建实体类(entity文件夹中)

 创建一个User.java编写以下代码

@Data
public class User {
    private Integer _id;
    private  String username;
    private String password;
    private Integer age;
}

第2步:定义一个标准化响应对象的类

用处:用于在Spring应用程序中返回操作的结果。这样的设计有助于保持响应的一致性,并且便于前端处理响应数据。

首先在common文件夹中创建result.java文件并编写以下代码

@Getter
@Setter
@AllArgsConstructor //所有属性的构造函数
@NoArgsConstructor  //无参构造
@Builder    //建造者模式创建Result对象
public class Result {
    public static final String CODE_SUCCESS="200";
    public static final String CODE_AUTH_ERROR="401";
    public static final String CODE_SYS_ERROR="500";
    private String code;
    private String msg;
    private Object data;


    public static Result success(){
        return new Result(CODE_SUCCESS,"请求成功",null);
    }
    public static Result success(Object data){
        return new Result(CODE_SUCCESS,"请求成功",data);
    }
    public static Result error(String msg){
        return new Result(CODE_SYS_ERROR,msg,null);
    }
    public static Result error(String code,String msg){
        return new Result(code,msg,null);
    }
    public static Result error(){
        return new Result(CODE_SYS_ERROR,"系统错误",null);
    }


}

第3步:编写请求数据库数据代码

1.在controller文件夹新建UserController.java文件并编写

@CrossOrigin    //跨域请求
@RestController     //这类是一个RESTful风格控制器
@RequestMapping("/user")    //请求路径
public class UserController {
    @Autowired //示将UserService类的
  • 57
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值