分布式Session解决方案_Token + Redis

接上一篇:分布式6大核心专题_分布式Session
https://gblfy.blog.csdn.net/article/details/113802195

文章目录

            • 1. 安装redis服务并启动
            • 2. 依赖+代码+配置
            • 3. 分别启动8081端口和8082端口
            • 4. 调用8081登录接口
            • 5. 调用8081获取用户信息接口
            • 6. 调用8082获取用户信息接口

实现流程
1.安装redis服务并启动
2.依赖+代码+配置
3.演示同一程序启动8081端口和8082端口模拟2个服务器分布式
4.调用8081登录接口
5.调用8081获取用户信息接口
6.调用8082获取用户信息接口

1. 安装redis服务并启动
docker run -d -p 6379:6379 redis:5
2. 依赖+代码+配置

pom

       <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency>

application.yml


spring:redis:host: 192.168.0.113 #ip地址port: 6379 #端口password: #密码
server:port: 8081 #应用web端口

案例代码

package com.gblfy.distributed.session.controller;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.web.bind.annotation.*;import java.util.UUID;
import java.util.concurrent.TimeUnit;@RequestMapping("/user")
@RestController
public class UserController {@Autowiredprivate StringRedisTemplate stringRedisTemplate;@GetMapping("/loginWithToken")public String loginWithToken(@RequestParam String username,@RequestParam String password) {//账号密码正确String key = "token_" + UUID.randomUUID().toString();stringRedisTemplate.opsForValue().set(key, username, 3600, TimeUnit.SECONDS);return key;}@GetMapping("/infoWithToken")public String infoWithToken(@RequestHeader String token) {return "当前登录的是:" + stringRedisTemplate.opsForValue().get(token);}
}
3. 分别启动8081端口和8082端口

同上一篇

4. 调用8081登录接口
#登录接口
http://localhost:8081/user/loginWithToken?username=admin&password=admin
5. 调用8081获取用户信息接口
#获取用户信息接口
http://localhost:8081/user/infoWithToken?token=登录后的token

注:由于需要在请求header添加token,因此,请使用postman工具测试

6. 调用8082获取用户信息接口
#获取用户信息接口
http://localhost:8082/user/infoWithToken?token=登录后的token

注:由于需要在请求header添加token,因此,请使用postman工具测试

测试结论:可以正常获取用户信息,关闭8081服务器,也是一样的,因为用户信息存放在redis服务端,不在应用本地,除非把redis关闭。

补充:
小伙伴发现,只有登陆成功后,携带token才可以访问其他接口,对吧!但是,每次都要手动填写token是不是很麻烦,其实正常的场景,前端会将登录后的token存放到Local Storage中,访问接口时会携带token,后端也会校验此token是否合法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/518860.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

达摩院首席数据库科学家李飞飞:云原生新战场,我们如何把握先机?

阿里妹导读&#xff1a;云计算大潮来袭&#xff0c;传统数据库市场正面临重新洗牌的情境&#xff0c;包括云数据库在内的一批新生力量崛起&#xff0c;动摇了传统数据库的垄断地位&#xff0c;而由云厂商主导的云原生数据库则将这种“改变”推向了高潮。 云时代的数据库将面临怎…

什么? 搞不定redis分布式锁?

作者&#xff1a;故事凌 分布式锁 1. 什么是分布式锁 分布式锁是控制分布式系统之间同步访问共享资源的一种方式。在分布式系统中&#xff0c;常常需要协调他们的动作。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源&#xff0c;那么访问这些资源的时候&am…

ElementUI的el-table隐藏id列

使用场景&#xff1a; 使用el-table进行数据的展示时&#xff0c;查询数据时要获取对象的ID属性&#xff0c;在展示时不需要展示ID这一列&#xff0c;但是在进行编辑时需要获取该ID。 实现方法&#xff1a; 可以通过在el-table-column上添加 v-if"false" 完整示…

阿里云CDN技术掌舵人文景:相爱相杀一路狂奔的这十年

提到阿里云CDN&#xff0c;不得不提技术掌舵人姚伟斌&#xff08;文景&#xff09;&#xff0c;虽然他不是团队中最“老”的同学&#xff0c;但他却历经了淘宝业务发展最为飞速的几年&#xff0c;见证了从最初服务淘宝和集团内部的CDN&#xff0c;到如今国内服务客户最多的云CD…

分布式Session解决方案_Token + JWT

接上一篇&#xff1a;分布式6大核心专题_分布式Session https://gblfy.blog.csdn.net/article/details/113802195 文章目录1. 引入JWT组件2. 代码配置3. 分别启动8081端口和8082端口4. 调用8081登录接口5. 调用8081获取用户信息接口6. 调用8082获取用户信息接口实现流程 1.引入…

把握数据库发展趋势 DBA应如何避免“踩坑”?

在DTCC 2019大会上&#xff0c;阿里云智能数据库产品事业部高级产品专家萧少聪做了题为《如何构建云时代DBA的知识体系》的演讲&#xff0c;进行云时代以后&#xff0c;IT行业各工种的职责都在发生变化&#xff0c;云数据库使得日常DBA管理实现更多的自动化&#xff0c;大大提高…

Could not load TestContextBootstrapper [null]. Specify @BootstrapWith‘s ‘value‘ attribute...

在测试redis集成短信验证时使用test启动类做单元测试&#xff0c;使用了spring注入。 RunWith(SpringRunner.class) SpringBootTest(classes RbacApplication.class) public class SmsUtilTest extends RbacApplicationTest{Autowiredprivate SmsHelper smsHelper;Autowiredp…

DevOps 转型时如何安全融入?对企业产出有何影响?2019年 DevOps 最新现状研究报告解读 | 原力计划...

作者 | liumiaocn责编 | 徐威龙封图| CSDN 下载于视觉中国2019年DORA发布了DevOps的研究报告&#xff0c;迄今为止这已经是DORA的第八次报告的发布。相较于往年的报告&#xff0c;2019年的报告全篇只聚焦于一个要素&#xff1a;安全。在2018年DORA提供了一个包含五个步骤的模型…

开源性能可视化工具——FlameScope模式识别

FlameScope是一个新的开源性能可视化工具&#xff0c;它使用次秒级偏移热图和火焰图来分析周期活动、方差、扰动。我们在Netflix TechBlog上面&#xff0c;发表了技术文章Netflix FlameScope&#xff0c;以及工具的源代码。火焰图很好理解&#xff0c;次秒级偏移热图理解起来要…

在腾讯云开通短信验证服务设置正确格式的签名和正文模板并完成群发消息测试

链接&#x1f449; https://blog.csdn.net/weixin_45001200/article/details/118878336?spm1001.2014.3001.5501 经历了一晚上的审核&#xff0c;终于在第二天近10点发来了测试验证码......

独家揭秘:阿里小程序的一云多端!看这篇就够了!

专家介绍 视频回放 https://yq.aliyun.com/live/1097 阿里小程序的一云多端 相信绝大部分同学知道阿里一云多端的项目&#xff0c;最早始于19年三月份在北京云栖大会上&#xff0c;阿里云的CEO在云栖大会上对外发布了一云多端的项目。 一云多端是什么? 大家今天常见都是微…

Centos7 1秒钟 安装 Docker

#使用yum命令在线安装Docker: yum install docker#安装后查看Docker版本: docker -vdocker基础操作 #启动docker&#xff1a; systemctl start docker#停止docker&#xff1a; systemctl stop docker#重启docker&#xff1a; systemctl restart docker#查看docker状态&#xf…

Docker 概念很难理解?一文搞定 Docker 端口绑定

作者 | Dieter Jordens译者 | 苏本如&#xff0c;责编 | 夕颜出品 | CSDN&#xff08;ID:CSDNnews&#xff09;以下为译文&#xff1a;作为初级开发人员的你&#xff0c;是不是参加过这样的面试&#xff0c;在面试中面试官希望你准确地回答Docker的工作原理&#xff1f;现今的面…

阿里云高级技术专家张毅萍:我眼中的边缘计算

边缘计算是目前公认的大方向&#xff0c;越来越多的边缘计算应用将随着5G建设的步伐而兴起。阿里云边缘计算团队的目标是在行业爆发来临之前&#xff0c;完成基础计算资源平台的构建&#xff0c;为产业提供基于体验的计算调度能力&#xff0c;进而助推整个产业快速应用发展。那…

docker 安装 mysql和Navicat Premium 远程连接

文章目录1. 安装mysql2. Navicat Premium 远程连接1. 安装mysql # 通过搜索镜像 docker search mysql# 拉取mysql镜像 docker pull mysql# 查看拉取的mysql镜像 docker images#创建MySQL容器 docker run -di --name mymysql -p 3306:3306 -e MYSQL_ROOT_PASSWORDroot mysql# 查…

牛客网SQL篇刷题篇(1-2)

https://www.nowcoder.com/ta/sql

阿里PB级Kubernetes日志平台建设实践

阿里PB级Kubernetes日志平台建设实践 QCon是由InfoQ主办的综合性技术盛会&#xff0c;每年在伦敦、北京、纽约、圣保罗、上海、旧金山召开。有幸参加这次QCon10周年大会&#xff0c;作为分享嘉宾在刘宇老师的运维专场发表了《阿里PB级Kubernetes日志平台建设实践》&#xff0c…

果断拿下4000万美元D轮融资,Rancher发力中国本土化与国产化!

2020年3月17日&#xff0c;业界应用广泛的Kubernetes管理平台创建者Rancher Labs&#xff08;以下简称Rancher&#xff09;宣布完成新一轮4000万美元D轮融资。 本轮融资由Telstra Ventures领投&#xff0c;既有投资者Mayfield、Nexus Venture Partners、国富绿景创投&#xff0…

电脑常用快捷键

Ctrl C 复制 Ctrl V 粘贴 Ctrl A 全选 Ctrl X 剪切 Ctrl Z 撤销 Ctrl S 保存 Ctrl Shift Esc 打开任务管理器 Shift Del 彻底删除 Win E 打开我的电脑 Win R 打开运行 Alt F4 关闭窗口 Alt Tab 切换应用程序

MySQL 8.0 技术详解

MySQL 8.0 简介 MySQL 5.7 到 8.0&#xff0c;Oracle 官方跳跃了 Major Version 版本号&#xff0c;随之而来的就是在 MySQL 8.0 上做了许多重大更新&#xff0c;在往企业级数据库的路上大步前行&#xff0c;全新 Data Dictionary 设计&#xff0c;支持 Atomic DDL&#xff0c…