• 简单的token用户登录实现,接口权限校验


    账号密码校验完成后,给Redis里塞一个key,生成UUID是token作为key,拿user对象作为value,以后执行任何操作就单传token在接口做校验就行,保存时间可以自己设定

    String token = UUID.randomUUID() + “”;
    //以token为key,user为value,存30分钟
    System.out.println(token);
    redisTemplate.opsForValue().set(token, user, 30, TimeUnit.MINUTES);
    简单的token登录

    复制代码
    @ApiOperation(value = “token登录”)
    @GetMapping(value = “/tokenLogin”)
    public Map login(HttpServletRequest request) {
    String loginToken = request.getHeader(“token”);
    Object user = redisTemplate.opsForValue().get(loginToken);
    if (user != null) {
    return ReUtil.result(“获取登录用户成功”, user);
    }else {
    return ReUtil.result(“获取登录用户失败”, user);
    }
    }
    复制代码
    如果其他的操作接口需要校验,就在接口的参数中加上HttpServletRequest 来获取token做校验,第一次返回后前端保存token,每次请求接口就带上,放在请求头中

    复制代码
    String token = request.getHeader(“token”);
    if(Strings.isNullOrEmpty(token)){
    return “token不能为空!”;
    }else {
    Object user = redisTemplate.opsForValue().get(token);
    if(null==user) {
    return “无权限执行此操作”;
    }else {
    //todo
    }
    复制代码
    因为要用到redis,下面是redis的pom依赖

    复制代码
      
    org.springframework.boot
    spring-boot-starter-data-redis


    org.apache.commons
    commons-pool2

    复制代码
    另外yml配置文件也需要配置

    复制代码
    redis:
    # redis数据库索引(默认为0),我们使用索引为6的数据库,避免和其他数据库冲突
    database: 6
    # redis服务器地址(默认为loaclhost)
    host: 192.168.110.199
    # redis端口(默认为6379)
    port: 6379
    # redis访问密码
    password: 123456
    # redis连接超时时间(单位毫秒)
    timeout: 60s
    # redis连接池配置
    pool:
    min-idle: -1
    max-idle: -1
    复制代码
    不想用redis管理也可以放在内存中,基本思路就是每次登录成功新建一个map,key是token,value是临时类,里面有user的实体和当前保存时的毫秒值,然后将map放入list中,每次请求对比有无这个token(key),然后拿出user即可,再建立一个定时任务,定时对比当前系统时间和临时类中的毫秒值,如果超出规定的时间就删除当前map,切记删除后break,否则会报空指针异常。

  • 相关阅读:
    基于Yolov8的中国交通标志(CCTSDB)识别检测系统
    Pytorch(一) —— 基本语法
    一道求导题:1004T3
    入门篇-其之六-附录一-以Java字节码的角度分析i++和++i
    万邦抖音获取douyin分享口令url API
    代码随想录算法训练营第二天 | 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II,54. 螺旋矩阵
    神经网络与深度学习(三):循环神经网络网络
    Python:实现logistic regression逻辑回归算法(附完整源码)
    y93.第六章 微服务、服务网格及Envoy实战 -- Envoy配置(四)
    Java中xml转javaBean
  • 原文地址:https://blog.csdn.net/weixin_43214644/article/details/126887163