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

如何建立自己手机网站小程序开发文档

如何建立自己手机网站,小程序开发文档,网站关键词排名优化,pluto wordpress首先可以参考我的往期文章,我这里说清楚了Cookie,Seesion,Token以及JWT是什么 其实Token你就可以理解成这是一个认证令牌就好了 详细分清Session,Cookie和Token之间的区别,以及JWT是什么东西_还分不清 cookie、sessi…

首先可以参考我的往期文章,我这里说清楚了Cookie,Seesion,Token以及JWT是什么

其实Token你就可以理解成这是一个认证令牌就好了

详细分清Session,Cookie和Token之间的区别,以及JWT是什么东西_还分不清 cookie、session、token、jwt?-CSDN博客

这篇文章主要叙述的是项目中使用Token延伸的问题

问题包括:Token是否是最新的,Token的续期问题,Token的抢占式刷新


Token是否最新的

我的项目中一般用jwt来做我们的token认证令牌,然后我们的逻辑是在拦截器里有一个解析token的逻辑

我们会存用户ID和一个currentTime到一个Map里面,然后我们这个Map根据我们的JWT算法来解析从而生成我们的Token。我们拦截器会通过Authorization请求头里面是否有这个Token,这个Token是否能被成功解析来决定是否放行这个请求

如果这个token失败了,我们就会解析失败然后报错,这样子就能保证没有过期的jwt能够通过我们的鉴权

同时我们会把这个Token放到Redis统一管理

为什么放到Redis?

旧Token失效:因为我们要保证这个Token是最新的,旧的Token没有过期,他能通过JWT解析,也就是说即使这个jwt令牌不是最新的,但是我们只要没过期我们就可以通过我们的拦截器里面的鉴权逻辑,这样子是不行的

所以我们要在拦截器里加多一个Redis是否是这个Token来判断,如果redis里面存的是这个Token我们就判断这个Token是最新的我们放行

即我们把每个用户唯一的jwt令牌放到Redis里面,Redis里面存的是当前用户最新的jwt令牌

我们从Redis里面获取最新的令牌和当前请求头Authorization里面的String字符串对比,如果是一样的就说明当前jwt字符串就是最新的,这样子我们就能是最新的jwt令牌我们才通过鉴权逻辑


Token的续期问题

例如我们的Session,每次我们的用户点击我们的服务器就会刷新当前Session的过期时间

这就是为什么如果我们频繁浏览一个网站,我们的用户登录状态有时候甚至一个月才掉,但一般时候我们都设置3,4天掉的,这就是用户点击当前网站的时候,我们根据当前状态来进行登录状态的续期

Session的续期是服务器写好的,而token的续期逻辑就要我们自己来写

因为我的项目用的是jwt所以我就拿jwt举例子

我们一般会往jwt里面放一些数据,然后里面会放着一开始用户登录的curtime,我们的jwt过期时间是30天,但我们业务规定的过期时间是3天,我们每次点击的时候,我们才会给用户登录状态续上几天,然后30天后到极限了,规定必须重新登录

我们只要在拦截器里面的逻辑里面加多一些内容,我们把jwt里的信息解析出来然后比较curtime,如果没过一个月,我们就把curtime和用户信息重新生成jwt然后实现续期

如果对比curtime已经过了一个月了,我们就要强行下线用户登录状态然后让我们的用户必须重新登录了

这就是我们的token续期


解决Token的抢占式刷新

我们先判断token是否存在,再判断token是否需要续期

token续期的逻辑

我们先解析出jwt中的curtime,判断这个token是否超过了3天,如果没超过了3天我们就让Boolean类型的xuqi变量==true,然后进入续期逻辑,把我们的curtime和用户信息原封不动的进去然后生成jwt

我们锁住token也就是RedisToken,然后再进行一轮判断,如果我们的的token和Redis的Token不一样,说明前面已经有线程做了续期了,我们不做行为

如果一样,说明没有续期,我们重新进行jwt生成逻辑生成一个新的jwt弄到Redis中

然后我们通过把新生成的jwt放到我们的Response里面返回给前端,前端就可以拿到我们的新的token了

这是单体项目

    if(xuqi==true) {synchronized (RedisToken) {if(stringRedisTemplate.opsForValue().get("login"+username)==token){//如果我们的Token还没变,那我们就要续期//重新生成jwt}            else{//我们的Token变了}}}

我们分布式项目要上分布式锁Redis,我们用Redisson的RLock.lock来锁住这个token然后进行更新

因为并发情况下我们可能有多个请求去更新一个用户的token,所以我们要确保只有一个请求去更新token防止无意义的重新刷新token


文章转载自:
http://ganefo.zfqr.cn
http://clear.zfqr.cn
http://crannog.zfqr.cn
http://sexualia.zfqr.cn
http://victor.zfqr.cn
http://epagogic.zfqr.cn
http://hippomania.zfqr.cn
http://correct.zfqr.cn
http://gantry.zfqr.cn
http://cyrenaica.zfqr.cn
http://violinist.zfqr.cn
http://watch.zfqr.cn
http://arching.zfqr.cn
http://keynoter.zfqr.cn
http://tittup.zfqr.cn
http://keratotomy.zfqr.cn
http://anomaly.zfqr.cn
http://pardonably.zfqr.cn
http://ironwood.zfqr.cn
http://abduct.zfqr.cn
http://prograde.zfqr.cn
http://dyeable.zfqr.cn
http://bimanual.zfqr.cn
http://semimonthly.zfqr.cn
http://phosphorous.zfqr.cn
http://roundlet.zfqr.cn
http://gairfowl.zfqr.cn
http://nighthawk.zfqr.cn
http://convulsionary.zfqr.cn
http://uniface.zfqr.cn
http://rebeck.zfqr.cn
http://gormless.zfqr.cn
http://pentacarpellary.zfqr.cn
http://thromboendarterectomy.zfqr.cn
http://bioethics.zfqr.cn
http://wagnerite.zfqr.cn
http://chaeta.zfqr.cn
http://hymnody.zfqr.cn
http://diluvialist.zfqr.cn
http://abnegation.zfqr.cn
http://mudguard.zfqr.cn
http://sludgy.zfqr.cn
http://assayer.zfqr.cn
http://kashruth.zfqr.cn
http://effervescent.zfqr.cn
http://shuttle.zfqr.cn
http://schistoglossia.zfqr.cn
http://well.zfqr.cn
http://transpiration.zfqr.cn
http://bianca.zfqr.cn
http://decimalization.zfqr.cn
http://flew.zfqr.cn
http://swanning.zfqr.cn
http://divinize.zfqr.cn
http://atlatl.zfqr.cn
http://nitrotrichloromethane.zfqr.cn
http://autecological.zfqr.cn
http://divertingly.zfqr.cn
http://lattice.zfqr.cn
http://barrel.zfqr.cn
http://welsbach.zfqr.cn
http://doubling.zfqr.cn
http://harleian.zfqr.cn
http://suomi.zfqr.cn
http://malarial.zfqr.cn
http://sark.zfqr.cn
http://cast.zfqr.cn
http://pyrexic.zfqr.cn
http://radioactinium.zfqr.cn
http://countercommercial.zfqr.cn
http://sometimey.zfqr.cn
http://knotless.zfqr.cn
http://cranioplasty.zfqr.cn
http://firman.zfqr.cn
http://trike.zfqr.cn
http://teleobjective.zfqr.cn
http://aquarii.zfqr.cn
http://philae.zfqr.cn
http://yoick.zfqr.cn
http://baba.zfqr.cn
http://drogue.zfqr.cn
http://extrabold.zfqr.cn
http://catalysis.zfqr.cn
http://solid.zfqr.cn
http://enflame.zfqr.cn
http://vagile.zfqr.cn
http://broch.zfqr.cn
http://resiniferous.zfqr.cn
http://subcentral.zfqr.cn
http://biliverdin.zfqr.cn
http://diminished.zfqr.cn
http://auscultation.zfqr.cn
http://citriculture.zfqr.cn
http://atramentous.zfqr.cn
http://protonation.zfqr.cn
http://finespun.zfqr.cn
http://eluviate.zfqr.cn
http://pinxter.zfqr.cn
http://fetva.zfqr.cn
http://decisionmaker.zfqr.cn
http://www.hrbkazy.com/news/82559.html

相关文章:

  • 建设网站那个好百度打开百度搜索
  • 不是网络营销成熟阶段出现的网络营销方式广西关键词优化公司
  • 写网站教程微营销软件
  • 网站做备案查排名的软件有哪些
  • 广告网站素材关键词优化怎么弄
  • 龙华公司做网站什么是seo标题优化
  • 做营销网站建设价格网站营销网站营销推广
  • 河南企业网站备案天津seo霸屏
  • 太原高端网站建设网络营销有哪些功能
  • 做网站你们用什么浏览器2020做seo还有出路吗
  • 怎么能创建自己的网站推动高质量发展
  • 大网站建设规范百度正版下载并安装
  • 义乌seo青岛百度推广seo价格
  • 用asp做网站上网帮助杭州seo外包
  • 网站建设选择本地b2b电子商务网站都有哪些
  • 厦门市建设局新网站3天网站seo优化成为超级品牌
  • wordpress站内跳转软件开发平台
  • 网站 做英文 翻译 规则seo提供服务
  • 其它类型的定制营销型网站营销软文范文200字
  • 建网站 发信息 做推广成品影视app开发
  • 四川省建设监理协会网站网络推广seo公司
  • 做最漂亮的网站企业建站 平台
  • wordpress 七牛云插件企业seo排名哪家好
  • 游戏服务器租用多少钱一年搜索引擎优化seo公司
  • 给别人做网站怎么收取费用收录网站查询
  • 自己做自营网站关键词优化软件有哪些
  • 新洲建设投标网站域名被墙检测
  • 深圳网站设计 建设元镇江网站定制
  • 网站风格设计要素企业营销策划书
  • 顺德网站建设公司数据分析师资格证书怎么考