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

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 简单的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依赖


<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-pool2</artifactId>
        </dependency>

另外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




相关文章
|
Prometheus Kubernetes 监控
Kubernetes 性能调优与成本控制
【8月更文第29天】随着 Kubernetes 在企业中的广泛应用,如何有效地管理和优化 Kubernetes 集群的性能和成本成为了一个重要的课题。本篇文章将介绍 Kubernetes 性能监控的基础知识,以及一些实用的成本优化技巧,包括资源配额的设置、Pod 密度的提高和集群规模的合理调整。
821 1
|
10月前
|
人工智能 运维 监控
|
10月前
|
存储 安全 数据管理
StarTowerChain:去中心化匿名云存储,重塑数据存储未来
在数据爆炸时代,StarTowerChain 以全球首创的去中心化匿名云存储技术强势登场。其分布式架构将数据分割存储于全球节点,大幅提升弹性和抗风险能力;加密技术和匿名化功能确保数据安全与隐私保护。广泛应用于金融、法律、能源、教育等领域,赋能各行业发展,引领云存储行业新变革。
404 22
|
11月前
|
机器学习/深度学习 数据采集 人工智能
人工智能在农业中的应用:智慧农业的未来
人工智能在农业中的应用:智慧农业的未来
446 11
|
11月前
|
人工智能 数据可视化 关系型数据库
产品动态丨阿里云计算巢月刊-2024年第12期
让优秀的企业软件生于云、长于云
2024年 | 12月云大使推广奖励规则
【近期云大使规则升级】①上线企业云大使提现功能。②增加返利订单类目。③优化推广奖励限制。④提升首购后订单返利比例。⑤新增沉睡用户返利 。⑥推荐企业认证新用户首购最高奖励45%。
|
算法 Unix Linux
7z——拥有极高压缩比的开源压缩软件
【11月更文挑战第6天】7z 是一种开源压缩软件,具有高压缩比、开源特性、功能丰富、跨平台支持和良好兼容性等特点。它采用先进的压缩算法,支持大文件、加密和多种压缩格式,广泛应用于个人和企业文件管理。
908 3
|
Kubernetes Cloud Native 云计算
深度挖掘:云计算平台在数字化转型中的核心作用
【10月更文挑战第29天】作为一名技术博主,我深入探讨了云计算平台在数字化转型中的核心作用。本文分析了云计算的弹性、可扩展性和高可用性如何帮助企业快速适应市场变化,降低成本并提高效率。同时,文章介绍了云计算在创新加速、业务连续性和灾难恢复方面的优势,并通过实际案例展示了其在企业数字化转型中的应用。
370 0
|
存储 数据管理 调度
鸿蒙操作系统如何支持不同设备的适配和兼容性?
鸿蒙操作系统如何支持不同设备的适配和兼容性?
2011 2
|
XML druid Java
C3P0连接池的基本配置与使用
C3P0连接池的基本配置与使用
850 0
C3P0连接池的基本配置与使用