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

网站如何做优化便宜点的网站建设

网站如何做优化,便宜点的网站建设,软件开发者工具,苏州市建设厅网站首页PS:作者是小白能接触到的就只会这样写。勿喷。 前提 思路: 结合io流将登录token存储到配置文件中,不将token存储到浏览器端#xff0c;从而避免盗取。 下面jwt的学习可以参考下这个: JWT --- 入门学习_本郡主是喵的博客-CSDN博客 JWT工具类 Component public class JWTtU…PS:作者是小白能接触到的就只会这样写。勿喷。 前提 思路: 结合io流将登录token存储到配置文件中,不将token存储到浏览器端从而避免盗取。 下面jwt的学习可以参考下这个: JWT --- 入门学习_本郡主是喵的博客-CSDN博客 JWT工具类 Component public class JWTtUtils {public static final String USER_NAME username;public static final String PASS_WORD password;public static final String CREATE_TIME createTime;public static final String SIGN_KEY QHX2004; // 解析key/*** 用用户名和密码生成JWT** param username* param password* return*/public String generatorJWTFromUserNameAndPassword(String username,String password){HashMapString, Object hashMap new HashMap(); // 生成maphashMap.put(USER_NAME,username);hashMap.put(PASS_WORD,password);hashMap.put(CREATE_TIME,new Date());return generatorJWTFromUserNameAndPassword(hashMap);}/*** 生成jwt过期时间,1个月** param* return*/private Date generatorExpirationDate() {return new Date(System.currentTimeMillis() (1000L * 60 * 60 *24 *30));}/*** 用用户名和密码生成jwt** param paramMap* return*/private String generatorJWTFromUserNameAndPassword(HashMapString, Object paramMap) {JwtBuilder jwtBuilder Jwts.builder().setClaims(paramMap).setExpiration(generatorExpirationDate()) // 设置过期时间.signWith(SignatureAlgorithm.HS512,SIGN_KEY);return jwtBuilder.compact(); // 拿到token}/*** 解析token拿到Claims*** param token* return*/private Claims getClaimsFromToken(String token){Claims claims Jwts.parser().setSigningKey(SIGN_KEY).parseClaimsJws(token).getBody();return claims;}/*** 校验token是否过期** param token* return*/// 过期返回truepublic boolean checkTokenIsOverdue(String token){Claims claims getClaimsFromToken(token);Date date claims.getExpiration();return date.getTime() new Date().getTime();}/*** 刷新token:重新生成一个token** param* return*/public String flushToken(String token){Claims claims getClaimsFromToken(token);String username (String) claims.get(USER_NAME);String password (String)claims.get(PASS_WORD);return generatorJWTFromUserNameAndPassword(username,password);}}IO工具类 public class IOUtils {public static final String FILE_NAME conf.properties;/*** 配置文件读取* param key* return value*/public static String getPropertiesKey(String key) {return getKey(key);}/*** 配置文件读取** param key* return*/private static String getKey(String key) {Properties properties new Properties();File file new File(FILE_NAME);FileInputStream inputStream null;try {inputStream new FileInputStream(file);properties.load(inputStream); // 其实已经将配置文件拿到手了} catch (IOException e) {e.printStackTrace();}finally {if(inputStream ! null){ // 还是这样关比较好万一报错就tm关不了try {inputStream.close();} catch (IOException e) {e.printStackTrace();}}}return properties.getProperty(key);}/*** 配置文件设置** param key* param value* return*/public static boolean setPropertiesKey(String key,String value) {// 判断key是否有重复String key1 getKey(key);if(key1 null){return setKey(key,value); // 把核心业务逻辑抽出来}return false;}/*** 配置文件设置** param key* param value* return boolean*/private static boolean setKey(String key, String value) {Properties properties new Properties();File file new File(FILE_NAME); // 其实有其他配置可以同意下yaml文件里面配置然后这里面读取好统一调配。FileWriter fileWriter null;try {fileWriter new FileWriter(file,true);properties.setProperty(key, value); // 存进map里面properties.store(fileWriter,); // 将map对应的键值对写进输出流。} catch (IOException e) {// 卧槽我加入设置key,value失败肯定调到这个逻辑return false;} finally {if (fileWriter ! null) { // 还是这样关比较好万一报错就tm关不了try {fileWriter.flush();fileWriter.close();} catch (IOException e) {e.printStackTrace();}}}return true;}}测试文件 SpringBootTest class IoDemoApplicationTests {Testvoid contextLoads() {// 用户第一登录 ----,我们这里浏览器端不存token只存用户名,更安全。String username qhx2005;String password 123456;// 生成jwtJWTtUtils jwTtUtils new JWTtUtils();String token jwTtUtils.generatorJWTFromUserNameAndPassword(username, password);// 将jwt存进配置文件boolean success IOUtils.setPropertiesKey(username, token);System.out.println(存进配置文件成功状态:success);assert success;// 用户登录后访问其他页面。检验token过期拿出配置文件是否存在----// 获取tokenString token1 IOUtils.getPropertiesKey(username);System.out.println(token1);// 检验token是否过期boolean overdue jwTtUtils.checkTokenIsOverdue(token);// 本来这里如果token过期,我们响应一个状态码让前端axios过滤器捕获到删除本地username,重定向到登录页。System.out.println(已经过期:overdue);}}
http://www.w-s-a.com/news/68284/

相关文章:

  • 优化一个网站多少钱网站开发北京
  • html教学关键词优化价格
  • 黄冈论坛网站有哪些给wordpress首页添加公告栏
  • 初中做数学题的网站做淘宝必备网站
  • 买拆车件上什么网站谁有那种手机网站
  • 一家专做有机蔬菜的网站万户网络是干嘛的
  • 十堰百度网站建设八宝山做网站公司
  • 地区电商网站系统建筑施工图纸培训班
  • 网站外包维护一年多少钱医院网站 功能
  • 电子商务市场的发展前景seo推广平台服务
  • 乐清网页设计公司哪家好seo推广任务小结
  • 360建筑网是什么pc优化工具
  • 越秀免费网站建设风景区网站建设项目建设可行性
  • 网站建站公司一站式服务学校网站开发招标
  • asp.net mvc 5 网站开发之美电商网站 流程图
  • 室内设计素材网站推荐郑州专业做淘宝网站建设
  • 新建的网站怎么做seo优化模板规格尺寸及价格
  • 平湖网站设计做电子元器件销售什么网站好
  • 可视化网站模板我想建个网站网站怎么建域名
  • 达州网站建设qinsanw南京市建设发展集团有限公司网站
  • django 网站开发实例公司排行榜
  • 韩国做美食网站阳江网站建设 公司价格
  • 网站开发哪里接业务长春高端模板建站
  • 深圳网站制作公司方案dw一个完整网页的代码
  • asp手机网站源码下载做seo推广网站
  • 网站优化建议怎么写网站维护主要有哪些内容和方法
  • 建设网站需要钱吗网络推广加盟
  • 高清素材图片的网站泰安网签备案查询
  • 自助网站建设怎么建设房地产的最新政策
  • 企业网站 生成html网站侵权怎么做公证或证据保存