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

购物帮做特惠的网站福州seo公司

购物帮做特惠的网站,福州seo公司,快站 淘宝优惠券,雪梨直播目录 1 前言 2 实现步骤 2.1 软件环境准备 2.1.1 Redis的安装 2.1.2 在pom.xml中添加依赖 2.1.3 在application.yml中进行相关配置 2.2 StringRedisTemplate的常用方法 2.2.1 获取operations 2.2.2 主要方法 2.3 令牌主动失效机制 2.3.1 登录时将令牌存入Redis 2.…

目录

1 前言

2 实现步骤

2.1 软件环境准备

2.1.1 Redis的安装

2.1.2 在pom.xml中添加依赖

2.1.3 在application.yml中进行相关配置

2.2 StringRedisTemplate的常用方法

2.2.1 获取operations

2.2.2 主要方法 

2.3 令牌主动失效机制

2.3.1 登录时将令牌存入Redis

2.3.2 修改密码时删除旧的令牌

2.3.3 拦截器中进行检验


1 前言

在我们使用JWT令牌进行登录验证的时候,不可避免的也会出现一些问题。比如:当用户修改密码后,旧的令牌仍然生效。因此,我们可以采用Redis进行登录的优化。

2 实现步骤

2.1 软件环境准备

2.1.1 Redis的安装

百度网盘的链接如下,解压即可使用

链接:https://pan.baidu.com/s/1nAXT6alX-pMxxSfAe6-tsw?pwd=0529 

提取码:0529

2.1.2 在pom.xml中添加依赖

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

在添加依赖后,会自动向IOC容器中注入StringRedisTemplate对象,通过它我们可以对Redis数据库进行相关操作。

2.1.3 在application.yml中进行相关配置

#redis初始状态没密码,所以暂时不需要配置
spring:data:redis:port: 6379 #端口号host: localhost #本地database: 0 #redis有16个小库,默认0

2.2 StringRedisTemplate的常用方法

2.2.1 获取operations

@Autowired
private StringRedisTemplate stringRedisTemplate;
//其它
ValueOperations<String, String> operations = stringRedisTemplate.opsForValue();

2.2.2 主要方法 

相关方法作用参数
operations.set("xx", "xx", 1, TimeUnit.HOURS);//过期时间为1小时向Redis中插入键值均为xx的数据

1.键(String)

2.值(String)

3.过期时间数(long)

4.时间数单位(TimeUnit.xx)

注:3和4可以不要

operations.get("xx");从Redis中获取键为xx的值键(String)
operations.getOperations().delete("xx");删除Rdis键为xx的键值对键(String)

2.3 令牌主动失效机制

2.3.1 登录时将令牌存入Redis

public class UserController {@PostMapping("/login")public Result<String> login(//其它) {//其它代码//获得JWT令牌String token = JwtUtil.genToken(claims);//将JWT令牌存入RedisValueOperations<String, String> operations = stringRedisTemplate.opsForValue();//过期时间要和JWT令牌保持一致operations.set(token, token, 1, TimeUnit.HOURS);}//其它代码
}

2.3.2 修改密码时删除旧的令牌

public class UserController {//其它代码@PatchMapping("/updatePwd")//@RequestHeader(name = "Authorization") String token从请求头中获取JWT令牌public Result updatePwd(@RequestBody Map<String, String> params, @RequestHeader(name = "Authorization") String token) {//其它代码//删除Redis中旧的JWT令牌ValueOperations<String, String> operations = stringRedisTemplate.opsForValue();operations.getOperations().delete(token);}
}

2.3.3 拦截器中进行检验

public class LoginInterceptor implements HandlerInterceptor {//其它@Overridepublic boolean preHandle(//其它) {try {//其它代码//没获取到值则不放行ValueOperations<String, String> operations = stringRedisTemplate.opsForValue();if (operations.get(token) == null) {throw new RuntimeException();}//放行return true;} catch (Exception e) {//不放行return false;}}
}

http://www.dinnco.com/news/15677.html

相关文章:

  • 做一个网页的流程目录网站应该如何进行优化
  • 网站建设构建方案襄阳百度开户
  • 确实网站的建设目标长沙百度百科
  • c程序设计教学网站怎么做千锋教育地址
  • 万网网站电话360收录批量查询
  • 胶南做网站产品推广运营的公司
  • 陕西网站建设托管合肥做网站哪家好
  • node 做的网站后端网络营销策划推广公司
  • 做算命网站挣钱么网络营销课程实训报告
  • 做ppt哪些网站的图片质量高seo教程搜索引擎优化
  • 做网站行业的动态国际站seo优化是什么意思
  • .net企业网站网络营销专业是干嘛的
  • 新公司董事长致辞做网站免费舆情网站
  • 上海网络建站模板营销策略有哪些有效手段
  • 哪个网站免费做简历要做网络推广
  • 做视频挣钱的网站自己的品牌怎么做加盟推广
  • 诸城网站建设定制长沙seo优化排名推广
  • 可以在几个 网站备案网络营销的流程和方法
  • www开头网站怎么做最新战争新闻事件今天
  • 禄劝彝族苗族网站建设谷歌商店下载
  • 营口网站建设单位十大营销策略
  • 网络优化工程师证书谷歌搜索优化seo
  • 拍卖网站建设方案大泽山seo快速排名
  • 织梦网站地图模板网站外链平台
  • 怎么查到代码是哪个网站做的优化防疫措施
  • 陕西公路工程建设有限公司网站广州高端网站建设公司
  • 怎么做同城网站数据分析工具
  • 西安微信网站开发视频号视频怎么看下载链接
  • 做图片格式跟尺度用哪个网站好谷歌seo外包公司哪家好
  • 上传到网站空间网络营销的基本特征有哪七个