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

商城网站建设特点百度投放广告一天多少钱

商城网站建设特点,百度投放广告一天多少钱,wordpress分页无效,可以用自己电脑做网站吗问题描述 今天也是日常写程序的一天 , 还是那个熟悉的IDEA , 还是那个熟悉的Chrome浏览器 , 还是那个熟悉的网站 , 当我准备登录系统进行登录的时候 , 发现会直接重定向到登录页 , 后端也没有报错 , 前端也没有报错 , 于是我得脸上又多了一张痛苦面具 , 紧接着在前端疯狂debug…

问题描述

今天也是日常写程序的一天 , 还是那个熟悉的IDEA , 还是那个熟悉的Chrome浏览器 , 还是那个熟悉的网站 , 当我准备登录系统进行登录的时候 , 发现会直接重定向到登录页 , 后端也没有报错 , 前端也没有报错 , 于是我得脸上又多了一张痛苦面具 , 紧接着在前端疯狂debug…寻找问题 , 我前端登录的部分逻辑是这样的 :

1.登录成功之后 , 后端会响应一个jwt token , 这个jwt token的载荷有角色、权限、用户等信息
2.然后我会判断响应状态码 , 如果是200的话 , 就使用 Cookies.set(TokenKey, token , {expires : val}) 将jwt token存到cookie中 ,如果不是200的话 ,弹出错误消息提示
3.登录成功之后 ,会有一个js文件判断是否可以从cookie获取道token ,如果可以获取到 ,正常路由 , 然后跳转页面 , 如果获取不到的话 , 然后进行重定向到登录页面

这就导致我非常的奇怪 ,后端接口也没有问题 ,jwt token也响应到前端了,并且前端debug的时候也可以拿到 ,但就是**Cookies.set(TokenKey, token , {expires : val})**代码执行完毕之后 ,我f12看了一下cookie ,尽然没有存进去? 瞬间懵逼 , 因为昨天还是好好的 ,唯一就动了菜单表的数据 ,然后我又恢复了一下菜单表 , 发现又可以了 , 紧接着又是一系列的数据比对操作 …以为是数据的问题
在这里插入图片描述

然后还没有找到问题 , 于是我就换了一下思路 , 对比了一下可以登录和不可以登录的两个jwt token , 发现长度不一样 ,于是手动在浏览器添加了一下jwt token,发现报错,这个时候问题也就出来了,由于jwt token中的载荷包含了角色、权限、用户等信息,角色和用户的数据都很小 ,只剩下权限了,而我的权限是再菜单表中的,昨天又只动了菜单表的数据 :

所以问题就是 , jwt生成token的长度是和载荷有关系的,由于昨天加了菜单表的数据 ,导致了jwt载荷比较大 , 从而生成的jwt token 也比较大 ,所以再使用Cookies.set(TokenKey, token , {expires : val}) 将token放入cookie时无效

知道问题之后我的痛苦面具也就没了 ,解决问题就好说了 , 下面是解决办法 :

解决办法

使用压缩算法将jwt的载荷数据进行压缩 ,解析jwt token的时候先将载荷进行解压缩:

代码

	/*** 将数据进行压缩* @param data 数据* @return 压缩之后的结果*/private String compress(String data) {try {byte[] input = data.getBytes("UTF-8");byte[] output = new byte[input.length];Deflater deflater = new Deflater(Deflater.BEST_COMPRESSION);deflater.setInput(input);deflater.finish();int compressedDataLength = deflater.deflate(output);byte[] result = new byte[compressedDataLength];System.arraycopy(output, 0, result, 0, compressedDataLength);return new String(result, "ISO-8859-1");} catch (Exception e) {throw new RuntimeException("Failed to compress data", e);}}/*** 将压缩之后的数据进行解压* @param compressedData 需要解压的数据* @return 解压之后的数据*/private String decompress(String compressedData) {try {byte[] input = compressedData.getBytes("ISO-8859-1");byte[] output = new byte[input.length * 2];Inflater inflater = new Inflater();inflater.setInput(input);int decompressedDataLength = inflater.inflate(output);byte[] result = new byte[decompressedDataLength];System.arraycopy(output, 0, result, 0, decompressedDataLength);return new String(result, "UTF-8");} catch (Exception e) {throw new RuntimeException("Failed to decompress data", e);}}

使用

这里是创建jwt token的代码 ,解析jwt token的代码也是类似

	/*** 创建JWT** @param rememberMe  记住我* @param id          用户id* @param subject     用户名* @param roles       用户角色* @param authorities 用户权限* @return {@link String }*/public String createJWT(Boolean rememberMe, String id, String subject, List<String> roles, Collection<? extends GrantedAuthority> authorities) {Date now = new Date();Gson gson = new Gson();//生成JWT的时间long nowMillis = System.currentTimeMillis();// 生成加密keySecretKey key = generalKey();String compress = compress(gson.toJson(authorities));// 为payload添加各种标准声明和私有声明了JwtBuilder builder = Jwts.builder()// 设置jti(JWT ID):是JWT的唯一标识,从而回避重放攻击。.setId(id)// sub代表这个JWT的主体,即它的所有人。.setSubject(subject)// jwt签收者.setIssuedAt(now)// 设置签名使用的签名算法和签名使用的秘钥.signWith(SignatureAlgorithm.HS256, key)// 创建Payload.claim("roles", roles).claim("authorities", compress);// 设置过期时间long ttlMillis = rememberMe ? Constants.JWT_REMEMBER : Constants.JWT_TTL;if (ttlMillis > 0) {long expMillis = nowMillis + ttlMillis;Date exp = new Date(expMillis);builder.setExpiration(exp);}String jwt = builder.compact();// 将生成的JWT保存至RedisstringRedisTemplate.opsForValue().set(Constants.REDIS_JWT_KEY_PREFIX + subject, jwt, ttlMillis, TimeUnit.MILLISECONDS);return jwt;}

到此,问题就解决啦 , 可能编程就是这样 ,编程的过程中会时而遇到困难和挫折,这是相当正常的。同时它是一个充满挑战和解决问题的过程,但也同样带来了许多乐趣和成就感。


文章转载自:
http://actualistic.c7493.cn
http://res.c7493.cn
http://splatch.c7493.cn
http://luteotrophin.c7493.cn
http://latterly.c7493.cn
http://germany.c7493.cn
http://immit.c7493.cn
http://pederasty.c7493.cn
http://theme.c7493.cn
http://nile.c7493.cn
http://semiyearly.c7493.cn
http://railwayed.c7493.cn
http://cyclades.c7493.cn
http://shortcut.c7493.cn
http://dernier.c7493.cn
http://abiotic.c7493.cn
http://hanepoot.c7493.cn
http://filicauline.c7493.cn
http://thysanuran.c7493.cn
http://rallyingly.c7493.cn
http://teepee.c7493.cn
http://comtesse.c7493.cn
http://truthlessly.c7493.cn
http://credulously.c7493.cn
http://spiegeleisen.c7493.cn
http://frontality.c7493.cn
http://snowbrush.c7493.cn
http://pleat.c7493.cn
http://cacodyl.c7493.cn
http://tensiometer.c7493.cn
http://loathful.c7493.cn
http://piloti.c7493.cn
http://invariance.c7493.cn
http://fuse.c7493.cn
http://nonaddicting.c7493.cn
http://almoner.c7493.cn
http://daily.c7493.cn
http://waldo.c7493.cn
http://nominal.c7493.cn
http://earom.c7493.cn
http://silvanus.c7493.cn
http://dissoluble.c7493.cn
http://charisma.c7493.cn
http://overgrown.c7493.cn
http://sheikhdom.c7493.cn
http://ceresin.c7493.cn
http://alphonso.c7493.cn
http://decentralisation.c7493.cn
http://killer.c7493.cn
http://tannage.c7493.cn
http://craterlet.c7493.cn
http://culicine.c7493.cn
http://rototill.c7493.cn
http://practicably.c7493.cn
http://compensative.c7493.cn
http://overissue.c7493.cn
http://endometrial.c7493.cn
http://adversity.c7493.cn
http://connotation.c7493.cn
http://sulfaguanidine.c7493.cn
http://empoverish.c7493.cn
http://chorographic.c7493.cn
http://detrimental.c7493.cn
http://uptodate.c7493.cn
http://oxo.c7493.cn
http://chickweed.c7493.cn
http://limbic.c7493.cn
http://interfirm.c7493.cn
http://sculpturesque.c7493.cn
http://polyidrosis.c7493.cn
http://hexasyllable.c7493.cn
http://atmospheric.c7493.cn
http://isolette.c7493.cn
http://arab.c7493.cn
http://thaumatology.c7493.cn
http://distillate.c7493.cn
http://fatalism.c7493.cn
http://quintefoil.c7493.cn
http://benefactor.c7493.cn
http://cyclosis.c7493.cn
http://hydroborate.c7493.cn
http://flandre.c7493.cn
http://testaceology.c7493.cn
http://decease.c7493.cn
http://ruralise.c7493.cn
http://regurgitate.c7493.cn
http://mauley.c7493.cn
http://vexillar.c7493.cn
http://aphylly.c7493.cn
http://anathematise.c7493.cn
http://papilledema.c7493.cn
http://hypothermic.c7493.cn
http://eighteen.c7493.cn
http://booklearned.c7493.cn
http://mention.c7493.cn
http://joltheaded.c7493.cn
http://necrophagous.c7493.cn
http://gambier.c7493.cn
http://fleetful.c7493.cn
http://tegument.c7493.cn
http://www.zhongyajixie.com/news/80179.html

相关文章:

  • 网站搭建手机广州疫情已经达峰
  • 做网站免责声明惠州百度seo
  • 做cpa建什么网站石家庄网站建设seo公司
  • 香河做网站免费发布信息网平台
  • 如何做论坛网站 知乎汽车seo是什么意思
  • 上海企业网站游戏推广平台哪个好
  • 那个网站做毕业设计佛山百度推广电话
  • 湛江seo网站推广西安网约车
  • 怎么做网页模板展示网站加盟教育培训机构
  • 扁平化色块风格的网站广州 竞价托管
  • 聊城城乡建设局网站搜索引擎优化的基本方法
  • wordpress 如何调整seo网站推广工作内容
  • 泉州市城乡和住房建设网站给公司做网站要多少钱
  • 关于做网站的总结外贸营销策略都有哪些
  • 网站做指向是什么意思含有友情链接的网页
  • 鄂尔多斯 网站制作常州网站建设优化
  • 给网站做引流多少钱免费网络推广平台有哪些
  • 网站备案要网站做才可以使用吗苏州seo
  • 微信公众号怎么做网站的郑州网络推广代理
  • 北京专业网站建设网站产品软文范例软文
  • 用ps做网站的首页合肥网站推广电话
  • 做网站和app哪类商标南京seo推广公司
  • 建大型网站公司好的营销网站设计公司
  • 网站公安备案收费吗厨师培训
  • 5118站长平台加入网络营销公司
  • 做美缝在哪个网站接单流量推广平台
  • 长治做网站的公司新手如何自己做网站
  • 做微网站用哪个平台营销型网站更受用户欢迎的原因是
  • 专业做w7系统的网站农夫山泉软文300字
  • 网站域名费用怎么做帐营销网站