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

seo网络贸易网站推广网站使用网络图片做素材 侵权

seo网络贸易网站推广,网站使用网络图片做素材 侵权,网站漂浮广告怎么做,株洲有名的网站文章目录 前言一、接口扩展1. LoginStorage2. LocalLoginStorage3. RedisLoginStorage4. 参数配置 二、登录相关接口改动1.登录接口2. 登录拦截器 总结 前言 前面分别介绍了本地Map和redis存储用户登录信息#xff0c;但是第二天我登录就出现问题了#xff0c;因为我Redis部… 文章目录 前言一、接口扩展1. LoginStorage2. LocalLoginStorage3. RedisLoginStorage4. 参数配置 二、登录相关接口改动1.登录接口2. 登录拦截器 总结 前言 前面分别介绍了本地Map和redis存储用户登录信息但是第二天我登录就出现问题了因为我Redis部署在虚拟机里面不可能每次都专门启动虚拟机来回替换代码也太麻烦这里我们根据配置参数来控制下将用户信息存储到哪里。 一、接口扩展 开放扩展,关闭修改。 1. LoginStorage package org.example.springboot3.bigevent.login;/*** Create by zjg on 2024/6/3*/ public interface LoginStorage {public void put(String id, String token);public String get(String id);public boolean remove(String id); }2. LocalLoginStorage package org.example.springboot3.bigevent.login;import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.stereotype.Component; import java.util.Map; import java.util.concurrent.ConcurrentHashMap;/*** Create by zjg on 2024/6/3*/ ConditionalOnProperty(namelogin.storage,havingValue 0) Component public class LocalLoginStorage implements LoginStorage{private MapString,String loginUsersnew ConcurrentHashMap(256);Overridepublic void put(String id, String token) {loginUsers.put(id, token);}Overridepublic String get(String id) {return loginUsers.get(id);}Overridepublic boolean remove(String id) {return loginUsers.remove(id)!null;}} 3. RedisLoginStorage package org.example.springboot3.bigevent.login;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Component; import java.util.concurrent.TimeUnit;/*** Create by zjg on 2024/6/3*/ ConditionalOnProperty(namelogin.storage,havingValue 1) Component public class RedisLoginStorage implements LoginStorage{AutowiredStringRedisTemplate stringRedisTemplate;Overridepublic void put(String id, String token) {stringRedisTemplate.opsForValue().set(id,token,24, TimeUnit.HOURS);}Overridepublic String get(String id) {return stringRedisTemplate.opsForValue().get(id);}Overridepublic boolean remove(String id) {return Boolean.TRUE.equals(stringRedisTemplate.delete(id));} } 4. 参数配置 这个参数控制使用本地存储、还是redis存储这样扩展起来也方便。 login:storage: 0二、登录相关接口改动 1.登录接口 Autowired LoginStorage loginStorage; 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()))){//密码正确MapString,Object claimsnew HashMap();claims.put(userId,user.getId());claims.put(username,user.getUsername());String token JwtUtils.create(claims);loginStorage.put(user.getId().toString(),token);return Result.success(登录成功,token);}}return Result.error(message); }2. 登录拦截器 Autowired LoginStorage loginStorage; Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {String token request.getHeader(Authorization);if(token!nulltoken.contains(Bearer)){String tokenStr token.substring(token.indexOf(Bearer) 7);boolean verify JwtUtils.verify(tokenStr);if(verify){//此处解析loginUsers,验证用户已登录MapString, Object claims JwtUtils.getClaims(tokenStr);if(tokenStr.equals(loginStorage.get(claims.get(userId).toString()))){ThreadLocalUtil.set(claims);//用户信息放置ThreadLocalreturn true;};}}response.setStatus(HttpStatus.UNAUTHORIZED.value());response.setContentType(application/json;charsetUTF-8);ObjectMapper objectMapper new ObjectMapper();objectMapper.writerFor(Result.class);String message objectMapper.writeValueAsString(Result.error(token验证失败,请重新获取token后重试!));response.getWriter().println(message);return false; } 总结 回到顶部 这样我们就可以通过参数login.storage的修改灵活地调整用户登录信息的存储方式了。 后面的登出接口和修改密码接口也会涉及到模式的使用。
http://www.w-s-a.com/news/530027/

相关文章:

  • 自己做网站原始代码高端品牌服装
  • 九度企业网站推广软件龙泉市建设局网站
  • 做个企业网网站怎么做专业3合1网站建设公司
  • 龙岩网站建设teams熊掌号公司网站的实例
  • 电商模板网站免费省级精品课程网站建设
  • 网站建设的规划书桂林生活最新网
  • 广东省建设工程执业中心网站wordpress的分类目录和标签
  • 甘肃省两学一做专题网站广东外发加工网
  • 用python导入wordpress公司网络优化方案
  • 效益成本原则网站建设wordpress 上传rar
  • 大连网站制作 连城传媒渠道网络公司官网
  • 电影天堂网站用什么程序做的wordpress 添加链接地址
  • 购买空间网站哪个好重庆英文网站建设
  • 建设网站需要注意什么问题设计网页通常使用什么语言
  • 彩票网站建设要多少钱西安英文网站建设
  • 静态班级网站印象云笔记 wordpress
  • 网站表单及商品列表详情模板永川网站制作联系电话
  • 网站建设与维护难不难网络服务机构的网站
  • 用三权重的网站做友链有好处没企业年金怎么查询
  • 工行网站跟建设网站区别wordpress加入地图
  • 网站的风格对比信息表广告门
  • 教育网站建设毕业设计说明书门户网站模式
  • 洛阳霞光建设网站html做分模块的网站
  • 域名建议网站wordpress 伪静态html
  • 网站风格化设计方案免费模式营销案例
  • 凤翔网站建设农村建设自己的网站首页
  • 怎样用网站做单笔外贸建筑设计公司合作加盟
  • 建网站买的是什么网站开发三层结构
  • wordpress图纸管理网站2345网址导航智能主版
  • 想调用等三方网站数据该怎么做培训课程