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

公司网站设计需要多少钱网站怎么搬家到快云vps里面去啊

公司网站设计需要多少钱,网站怎么搬家到快云vps里面去啊,有什么兼职做设计的网站好,做游戏能赚钱的网站文章目录 前言一、整合redis1. 引入库2. 配置 二、登录优化1.登录2.拦截器3. 登出4. 修改密码 总结 前言 上一章的登录接口,我们将用户登录信息放置于Map中,存在一个问题,集群部署无法共享以及应用停止用户登录信息即丢失,接下来我们整合redis来整合这个问题。 一、整合redis …

文章目录

  • 前言
  • 一、整合redis
    • 1. 引入库
    • 2. 配置
  • 二、登录优化
    • 1.登录
    • 2.拦截器
    • 3. 登出
    • 4. 修改密码
  • 总结


前言

上一章的登录接口,我们将用户登录信息放置于Map中,存在一个问题,集群部署无法共享以及应用停止用户登录信息即丢失,接下来我们整合redis来整合这个问题。


一、整合redis

1. 引入库

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

2. 配置

spring:data:redis:host: 192.168.137.192port: 6379database: 0username: defaultpassword: 21797d7480c1270b848a1524128671b31dcad0725762cf41cc81c21e15fa35b2

二、登录优化

1.登录

@Autowired
StringRedisTemplate stringRedisTemplate;
@RequestMapping("login")
public Result login(@Valid User loginUser){String message="用户名/密码不正确";User user = userSerivce.findUserByName(loginUser.getUsername());if(user!=null){//用户存在if(user.getPassword().equals(Md5Util.getMD5String(loginUser.getPassword()))){//密码正确Map<String,Object> claims=new HashMap();claims.put("userId",user.getId());claims.put("username",user.getUsername());String token = JwtUtils.create(claims);stringRedisTemplate.opsForValue().set(user.getId().toString(),token,24, TimeUnit.HOURS);return Result.success("登录成功",token);}}return Result.error(message);
}

2.拦截器

@Autowired
StringRedisTemplate stringRedisTemplate;
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {String token = request.getHeader("Authorization");if(token!=null&&token.contains("Bearer")){String tokenStr = token.substring(token.indexOf("Bearer") + 7);boolean verify = JwtUtils.verify(tokenStr);if(verify){//此处解析loginUsers,验证用户已登录Map<String, Object> claims = JwtUtils.getClaims(tokenStr);if(tokenStr.equals(stringRedisTemplate.opsForValue().get(claims.get("userId").toString()))){ThreadLocalUtil.set(claims);//用户信息放置ThreadLocalreturn true;};}}response.setStatus(HttpStatus.UNAUTHORIZED.value());response.setContentType("application/json;charset=UTF-8");ObjectMapper objectMapper = new ObjectMapper();objectMapper.writerFor(Result.class);String message = objectMapper.writeValueAsString(Result.error("token验证失败,请重新获取token后重试!"));response.getWriter().println(message);return false;
}

3. 登出

@RequestMapping("logout")
public Result logout(@Valid User loginUser,@RequestHeader("Authorization") String token){String message="用户名/密码不正确";User user = userSerivce.findUserByName(loginUser.getUsername());if(user!=null){//用户存在if(token!=null&&token.contains("Bearer")){String tokenStr = token.substring(token.indexOf("Bearer") + 7);boolean verify = JwtUtils.verify(tokenStr);if(verify&&tokenStr.equals(loginInceptor.get(user.getId()))){
//                    loginInceptor.remove(user.getId());stringRedisTemplate.delete(user.getId().toString());return Result.success("登出成功");}}}return Result.error(message);
}

4. 修改密码

@PatchMapping("updatePwd")public Result updatePwd(@RequestBody Map<String,String> params){String oldPwd = params.get("old_pwd");String newPwd = params.get("new_pwd");String conPwd = params.get("con_pwd");//参数校验if(!StringUtils.hasLength(oldPwd)||!StringUtils.hasLength(newPwd)||!StringUtils.hasLength(conPwd)){return Result.error("缺少必要的参数");}if(!validPwdLen(oldPwd)||!validPwdLen(newPwd)||!validPwdLen(conPwd)){return Result.error("密码为8-20位");}//密码匹配Map<String, Object> claims =ThreadLocalUtil.get();Integer userId = (Integer) claims.get("userId");User user = userSerivce.findUserById(userId);if(!Md5Util.getMD5String(oldPwd).equals(user.getPassword())){return Result.error("密码有误");}//新密码匹配if(!newPwd.equals(conPwd)){return Result.error("两次密码不匹配");}//新旧匹配if(newPwd.equals(oldPwd)){return Result.error("新旧密码不能相同");}user.setPassword(Md5Util.getMD5String(newPwd));int i = userSerivce.UpdateUser(user);if(i!=1){return Result.success("密码修改失败");}stringRedisTemplate.delete(user.getId().toString());return Result.success("密码修改成功");}

总结

回到顶部
更多关于redis内容请参考redis系列专栏

http://www.yayakq.cn/news/415489/

相关文章:

  • 在环评备案网站上做登记后会怎么样哪里卖网站模板
  • 印刷网站开发策划书东莞企石网站建设
  • .tv做网站怎么样百度教育小程序入口
  • 中医网站源码公司官网如何推广
  • 沈阳企业网站排名优化个人证件查询
  • 注册网站时手机号格式不正确软件开发工具链
  • 建立网站基本知识外卖网站建设方案书
  • 东莞微客巴巴做网站网页设计的基本结构
  • 响应式的学校网站wordpress 营销模板下载
  • 网站域名 没有续费青岛做企业网站
  • 扬州个人做网站做seo推广一年大概的费用
  • 怎么用ps做网站首页图片尺寸江苏省建设厅网站首页
  • html做网站心得北京网站建设模板案例
  • wordpress安装到网站吗计算机网站建设方向
  • 烟台怎么做网站网站打开速度进行检测
  • 山东省建设工程 评估中心网站卖代码建设网站
  • 江西省城乡建设陪训网官方网站vps网站能打开
  • 志愿者网站 建设方案江门市住房和城乡建设局网站
  • 网站页面制作视频重庆装修贷
  • 丰都网站建设案例有哪些专做旅游定制的网站
  • 建站公司 网络服务百度导航和百度地图
  • 自己怎么做公司网站专门学习网站建设读什么专业
  • 大型网站服务器架构网站后台用户管理系统
  • 网站tag标签网站上面的主导航条怎么做
  • 整形网站专题素材技能培训机构
  • 建设网站翻译英文经典营销案例分析
  • 电话销售怎么做 网站网页设计制作网站开发建设新手建站基础入门到精通视频教程
  • 河北网站备案系统网页版qq注册
  • 如何推广企业网站申请关闭网站
  • 手机网站页面尺寸大小怎么上传做 好的网站